- 論壇徽章:
- 0
|
最近,因?yàn)橛泻脦讉(gè)項(xiàng)目都都要用到曲線(xiàn)圖,所以決定認(rèn)真把曲線(xiàn)圖做成一個(gè)類(lèi)。實(shí)現(xiàn)時(shí),可以自由設(shè)定其它大小,刻度等一些參數(shù)。
還以比較喜歡VS2003的集成開(kāi)發(fā)環(huán)境,寫(xiě)代碼,調(diào)試,都比在linux下方便,所以就索性在windows寫(xiě);藘商鞎r(shí)間,曲線(xiàn)圖做出來(lái)了。那就在linux跑一下吧,程序能編譯通過(guò),執(zhí)行后,發(fā)現(xiàn)背景圖片一個(gè)都沒(méi)。問(wèn)題就來(lái)了。。。
考慮到這個(gè)類(lèi)要自動(dòng)適應(yīng)不同大小,所以背景圖,我全是用2*28等這樣比較小的像素填充上去的,用的
void QPainter::drawTiledPixmap ( int x, int y, int width, int height, const
QPixmap
& pixmap, int sx = 0, int sy = 0 )
在windows上很正常,但在linux下主是畫(huà)不出來(lái),后來(lái)做了個(gè)小的測(cè)試,單獨(dú)寫(xiě)了一個(gè)小程序,發(fā)現(xiàn),當(dāng)窗口比較大時(shí),這些圖片,有時(shí)根本畫(huà)不出不,有時(shí)能畫(huà)出一部分來(lái),窗口小時(shí),基本上都能畫(huà)出來(lái)。還有就是,圖片像素大點(diǎn)話(huà),也有可能畫(huà)出來(lái)。
第一時(shí)間,想到的就是gcc版本太低,redhat9.0,自帶的gcc是3.2.2。拿出自己的老筆記本(Dell D40都快成古董了,哈~),那個(gè)本子里以前裝過(guò)ArchLinux+QTEmbedded4.3.4,gcc4, 編譯、執(zhí)行,一切正常。
那應(yīng)該就是gcc版本低的問(wèn)題了,于是就開(kāi)始進(jìn)入安裝gcc4的旅途。。。
之前看過(guò)QT文檔,里面提過(guò),一些建議的gcc版本,和與之對(duì)應(yīng)編譯出來(lái)的庫(kù)的大小。x86下,文檔里寫(xiě)的是gcc4.2.4,那好吧,就裝這個(gè)。
總結(jié)一下gcc4.2.4在redhat9.0上的安裝過(guò)程:
一、cp gcc-4.2.4.tar.gz /tmp/
二、tar zxvf gcc-4.2.4.tar.gz 解壓出來(lái)gcc-4.2.4目錄
三、建立編譯目錄: mkdir gcc-4.2.4-build
四、建立安裝目錄:mkdir /usr/local/gcc-4.2.4
五、cd 到gcc-4.2.4-build,接下來(lái)的操作都是在這個(gè)目錄下完成的
六、配置:
../gcc-4.2.4/configure --prefix=/usr/local/gcc-4.2.4 --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++
七、make;make install
八、設(shè)定環(huán)境變量,在/etc/profile里加入如下:
PATH=/usr/local/gcc-4.2.4/bin:$PATH
export PATH
LD_LIBRARY_PATH=/usr/local/gcc-4.2.4/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
九、注銷(xiāo)一下,或source /etc/profile,然后gcc -v看一下版本,如果是gcc-4.2.4就對(duì)了。
裝完gcc4后,QT4.5還得得新裝一遍,從昨晚9點(diǎn)一直編譯到12點(diǎn)鐘,一個(gè)漫長(zhǎng)的等待。雖然已經(jīng)是凌晨零點(diǎn)了,但還是迫不及待地試一下QT程序,結(jié)果有點(diǎn)失望,跟gcc3.2.2的結(jié)果一樣,背景圖片還是填不上去。問(wèn)題可能比較麻煩了,睡覺(jué)去,明天再說(shuō)了。
早上到公司后,當(dāng)然是馬上再試兩把了,還是那樣。那說(shuō)明背景圖片填不上去,可能跟gcc的版本沒(méi)有關(guān)系,但為什么在arcchlinux上就行呢? archlinux的也是gcc4,版本可能有少稍微差別,但應(yīng)該不是問(wèn)題,這里面唯一的區(qū)別那就是redhat9的qt是x11版本的,而archlinux裝的是embedded版的。 背景圖片填不出來(lái),應(yīng)該是X11導(dǎo)致的,或許有BUG,或許X11版本太低。
接下來(lái),要做的實(shí)驗(yàn)就是同時(shí)在redhat上面裝一個(gè)X11版本qt,再裝一個(gè)embedded版qt,同時(shí)跑一下測(cè)試程序,看結(jié)果。。。 說(shuō)動(dòng)手就動(dòng)手,再在就開(kāi)始裝
分兩實(shí)驗(yàn):
第一步,用redhat9.0自帶的gcc裝分別裝兩個(gè)版本的qt
第二步,在redhat9.0上,用自己裝的gcc4.2.4裝qt的兩個(gè)版本。
第一步的結(jié)果很快就出來(lái)了,qt-embedded-linux-opensource-src-4.5.0在自帶的gcc3.2.2編譯出錯(cuò)。原因:gcc版本太低。 既然embedded版的裝不上去,也沒(méi)什么可比性了,馬上啟動(dòng)第二步 2009.08.06 15:45
第二步的結(jié)果也有了,結(jié)果是用gcc4.2.4也裝不上去qt-embedded4.5. 2009.08.07 09:02
這兩步實(shí)驗(yàn)都失敗了。。。
但在archlinux上能裝上qt-embedded4.5,而且圖片背景填充也都沒(méi)問(wèn)題。 看來(lái),以后是不是考慮改玩archlinux了,redhat9太老了,事太多。。
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u2/85282/showart_2019579.html |
|