MiniGui開發:Ubuntu14.04環境安裝qvfb工具
在Ubuntu14.04上搭建MiniGui開發環境,需要依賴qvfb工具。
minigui官網提供了qvfb的安裝包,下載連線:MiniGui官網
安裝過程比較痛苦, 需要依賴qt3的庫和標頭檔案,但是當前的qt版本已經比較高了,apt的源沒有預設安裝的libqt3-headers libqt3-mt-dev選項。
最開始的時候我是自己從網上找了qt3的庫自己單獨編譯安裝,但是有一些依賴無法安裝成功,廢了好大的力氣最後還是失敗了,差評!
最終,還是不使用minigui官網下載的qvfb安裝包。以下為親測通過的安裝過程:
安裝環境
ubuntu 14.04-i386
安裝編譯工具:
sudo apt-get install build-essential
安裝依賴的第三方庫:
libx11-dev libxext-dev libxtst-dev
qt-4.8.6原始碼下載連結:Qt官網下載
選擇檔案qt-everywhere-opensource-src-4.8.6.tar.gz,解壓:
$ tar zxvf qt-everywhere-opensource-src-4.8.6.tar.gz
這裡解釋一下,為什麼不使用qt提供的最新版本,當前qt已經更新到了qt5.7版本,親測過還是比較穩定可用的。但是我下載過qt5.x的版本,並沒有找到qvfb工具,此處沒有深究。所以使用了qt4.x最新的版本4.8.6。
編譯安裝qt-4.8.6
配置:
$ ./configure -opensource -prefix /home/test/install/qt
執行make && make install
編譯過程如果突然錯誤提示缺少庫的話就使用apt源預設安裝就好了。
編譯通過,安裝完成後,需要將qt的庫和可執行檔案路徑配置到環境變數中,否則在安裝qvfb時會報錯。
export PATH=$PATH:/home/test/install/qt/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/test/install/qt/lib
這裡沒有安裝到系統預設的/usr/local資料夾下,是因為我的ubuntu並不需要qt的開發環境,只是需要qvfb工具,才不得不安裝qt。
如果需要用過qt開發環境的,也可以只用預設安裝。
編譯安裝qvfb
配置環境變數成功後,進入qt4.8.6原始碼目錄下的tools/qvfb,執行qmake命令。
如果出現錯誤找不到qmake命令,則是因為環境變數配置沒有生效。
qmake執行成功,執行make命令,開始編譯
如果出現錯誤:
qanimationwriter.cpp:(.text+0x138):對‘png_create_write_struct’未定義的引用
qanimationwriter.cpp:(.text+0x143):對‘png_create_info_struct’未定義的引用
qanimationwriter.cpp:(.text+0x159):對‘png_set_compression_level’未定義的引用
qanimationwriter.cpp:(.text+0x178):對‘png_set_write_fn’未定義的引用
解決步驟:
執行命令
$ locate libpng
檢視系統libpng庫位置,如果找不到,需要預設安裝。
我的系統下結果為:
/lib/i386-linux-gnu/libpng12.so.0
建立軟連線
$ sudo ln -s /lib/i386-linux-gnu/libpng12.so.0 /lib/i386-linux-gnu/libpng.so
修改Makefile檔案
開啟Makefile檔案,找到LIBS變數,增加 -L/lib/lib/i386-linux-gnu -lpng:
LIBS = $(SUBLIBS) -L/home/test/share/code/qt/qt-everywhere-opensource-src-4.8.6/lib -L/usr/X11R6/lib -lz -lXtst -lQtGu i -L/home/test/share/code/qt/qt-everywhere-opensource-src-4.8.6/lib -L/usr/X11R6/lib -L/lib/lib/i386-linux-gnu -lpng -lQtCore -lpthread -lXext -lX11 -lm
儲存退出,重新執行。
編譯成功後,將原始碼目錄bin下的qvfb檔案拷貝到qt安裝目錄bin下。
執行:
$ qvfb -width 600 -height 400 &
qvfb安裝成功。在需要使用minigui前,先開啟qvfb模擬工具,讓其在後臺執行,這樣minigui的介面就可以正常運行了。