今天裝了qvfb,試了幾個(gè)minigui的示例和演示小程序,覺(jué)得就算把minigui的用戶手冊(cè)讀爛了,還是錯(cuò)漏百出的,所以在此記錄一下,方便遇到同樣問(wèn)題的xdjm。
                        一,首先是minigui的解壓安裝等等,用戶手冊(cè)上已經(jīng)很清楚。
                        遇到問(wèn)題一:編譯示例和演示程序時(shí)都說(shuō)找不到miniguilib.-1.6.so.2。
這是因?yàn)?/configure時(shí)是把這些庫(kù)默認(rèn)安裝到/usr/loca/lib下的,所以找不到只有一個(gè)原因就是未共享動(dòng)態(tài)鏈接庫(kù),所以找到/etc/ld.so.conf修改里面的內(nèi)容,我系統(tǒng)的ld.so.conf原來(lái)的內(nèi)容就是一句話include ld.so.conf.d/*.conf ,我在下一行加上/usr/local/lib。然后執(zhí)行命令ldconfig(必須的)。再重新編譯示例程序等就成功了。
                        遇到問(wèn)題二:make演示程序(mde)時(shí)出錯(cuò),提示找不到部分頭文件
這是因?yàn)閙de安裝時(shí)的默認(rèn)搜索路徑不是/usr/local,(搞死人),所以必須首先修改目錄下的configure.in 文件,將其中AC_CHECK_HEADERS(minigui/commmon.h, have_libminigui=yes, foo=bar)改為AC_CHECK_HEADERS($prefix/include/minigui/common.h, have_libminigui=yes, foo=bar),以防止編譯時(shí)系統(tǒng)無(wú)法找到頭文件,然后執(zhí)行autogen.sh 腳本,重新生成configure腳本,在./configure時(shí)加上參數(shù)--prefix=/usr/local/lib。執(zhí)行成功后,在該目錄下會(huì)生成一個(gè)新的Makefile文件。
此時(shí)再make一下,發(fā)現(xiàn)仍然有notebook、tools等文件夾里的main.c等編譯不通過(guò)。
這時(shí)就要修改Makefile文件中的 COMMON_SUBDIRS 部分,將其中的notebook、tools、controlpanel 例子(凡是編譯不通過(guò)的例子)暫時(shí)刪除,否則編譯這幾個(gè)程序時(shí)會(huì)提示找不到popt.h 和libpopt.so。而這些popt 頭文件和庫(kù)文件需要自己從網(wǎng)上下載到相應(yīng)的目錄當(dāng)中。
                         
                        二,安裝qvfb
                        我在沒(méi)有安裝qvfb之前運(yùn)行./helloworld等程序是顯示
GAL fbcon engine: Error when opening /dev/fb0: No such device. Please check kernel config.
GAL: Init GAL engine failure: fbcon.
GDI: Can not initialize graphics engine!
證明我的linux是未激活FrameBuffer,所以我選擇了安裝QVFB程序。步驟如下:
去http://www./download/cindex.shtml(周立功的光盤(pán)中有提供qvfb-1.0.tar.gz)開(kāi)發(fā)工具那下載qvfb-1.0.tar.gz,解壓,進(jìn)入其目錄,按順序執(zhí)行./configure,make,make install ,qvfb & , 配置qvfb并運(yùn)行示例程序:! _4 l! L   K3 e& y   s
編輯/usr/local/etc/MiniGUI.cfg,將GAL和IAL引擎均改為qvfb: - i6 \. e$ A0 D
    25 [system]
% B8 R- p# T' ?, `     26 # GAL engine
0 A$ x$ N% l$ e6 {, j# d     27 gal_engine=qvfb% S! Q1 |8 }; Q' h) a! N4 U0 W
    28
" h4 N' _0 Q; }3 g     29 # IAL engine% y& b, q/ H2 g9 p2 s, v
    30 ial_engine=qvfb- v) o5 Z- {- K5 y% R
    31
9 I1 F   B1 [5 J; w- d/ B6 C3 ?     32 mdev=/dev/mouse1 U3 ^- v% }/ O2 d5 }
    33 mtype=IMPS2# f0 v5 a5 W( H7 i% C
    34: n' o, y$ r# h+ j1 d) K
    35 [fbcon]. R2 X+ K# Z; _6 H& \0 K) n   Q
    36 defaultmode=1024x768-16bpp1 ]& N, @   q& r' A
    37% S3 @2 _% ~* P! P1 [" f0 G
    38 [qvfb]; V) l( |1 J) X5 W" W* v7 @+ @/ B
    39 defaultmode=640x480-16bpp
4 a, ]: ?! ~- x# X3 ?6 @$ b     40 display=00 r   z1 z8 G) @7 f+ N& _, s/ s/ H
    41
7 l" a' `- f, P0 ~7 [2 x接著運(yùn)行qvfb &以啟動(dòng)虛擬幀緩沖區(qū): 1 F1 e" G7 U4 r* X& l' {; T- |
linux:/home/work/minigui/mg-samples-1.3.1 # qvfb &
9 e0 r' Z- g( t3 x5 @6 s- }這時(shí)會(huì)出現(xiàn)一個(gè)像下面這樣的窗口:
                         
                        遇到問(wèn)題三:error while loading shared libraries:libqt-mt.so找不到這個(gè)庫(kù),看一下這個(gè)庫(kù)所在的位置,也在啊,又是共享庫(kù)的問(wèn)題,所以解決辦法就如前:
在/etc/ld.so.conf中再加上缺少的庫(kù)的所在位置路徑,然后ldconfig。
                        三,運(yùn)行qvfb
                        qvfb &