歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu Linux下獨立編譯QVFB

Ubuntu Linux下獨立編譯QVFB

日期:2017/2/28 16:15:15   编辑:Linux教程

搭建嵌入式QT開發環境已經進行了好幾天了,異常的艱難,做到中間有時候都煩躁地想推翻重來,可那又會是更漫長的過程,中間的編譯配置讓我感覺混亂,因為剛剛接觸這方面的知識,甚至對Ubuntu Linux都沒有多少了解,以至於出現太多錯誤讓我感覺不知所措,靜下來分析,還是因為不了解QT安裝到底是怎麼回事。在安裝的不斷折騰中才理解它是怎樣的一個過程。

前面我已經安裝了QT-X11和QT for embedded linux,但是當使用QVFB的時候卻發現沒有安裝QVFB。我安裝QT-X11的時候是直接從NOKIA網站上下載的SDK,而不是源碼包SRC,而SDK中是不包含QVFB的,源碼包也是需要編譯的。經過一番折騰摸索,參考了很多資料,下面是詳述。

1、安裝QVFB,需要知道它在哪兒,我的QT-X11安裝在/home/fengchao/qtenv/qtsdk/,而QVFB就是在qtsdk/qt/tools/qvfb/下,需要經過編譯安裝才可以使用。編譯需要由qmake所生成的makefile,所以要確保qmake可用;然後需要make來把makefile生成可執行文件qvfb,然後就把它cp到home/fenchao/qtenv/x86/bin的目錄下就可以了。(因為qvfb是用來在電腦上演示用的,所以放在x86環境下)

code:

$ cd qtenv/qtsdk/ //qtsdk下的環境變量設置文件setenv.sh

$ source setenv.sh //使QT-X11的環境變量生效

$ cd qt/tools/qvfb

$ qmake

$ make

make的過程中出現一個典型錯誤:qvfb.cpp:51:24: error: deviceskin.h: No such file or directory
原因參見:http://www.linuxidc.com/Linux/2011-05/36012.htm

但是它所說的對於一個新手來說看起來可能還是費勁的,我再通俗地解釋一下:

這個問題仍然是環境變量設置的問題,因為QT_SOURCE_TREE的設置使得make的時候找不到deviceskin.h。

在qvfb.pro這個文件裡,可用QtCreator打開查看

第37行#include($[[QT_SOURCE_TREE]]/tools/shared/deviceskin/deviceskin.pri)
那麼就需要設置一下該變量QT_SOURCE_TREE

解決方法參見:http://www.linuxidc.com/Linux/2011-05/36013.htm

2、步驟是

1)首先定位到文件夾:qtenv/qtsdk/

$ cd qtenv/qtsdk

2) 將QT_SOURCE_TREE的目錄設置到我們當前的目錄上,這個變量qvfb.pro要用到,執行命令

$ qmake -set QT_SOURCE_TREE $PWD (PWD為當前目錄)3) 改動qvfb.pro中使用變量方式$$QT_SOURCE_TREE為$$[QT_SOURCE_TREE],執行命令為

$ sed -i "s/QT_SOURCE_TREE/[QT_SOURCE_TREE]/g" tools/qvfb/qvfb.pro4)執行qmake,make編譯,執行命令為

$ cd tools/qvfb/;qmake;make5)拷貝到x86/bin下

$ cp qtsdk/qt/bin/qvfb x86/bin

6)最後測試qvfb

$ cd x86

$ source setenv.sh

$ cd x86/bin

$ qvfb &

若出現窗口(可能是黑屏)則表示qvfb安裝成功;若想使用qvfb則運行 ./app -qws指令即可,app為生成的可執行文件。

其中工程文件app.pro由qmake生成makefile,再運行make生成可執行文件app,然後運行 qvfb -width 800 -height 600 & 最後運行./app -qws即可執行。

如果在一些文件的make過程中出現錯誤則再根據錯誤提示解決即可,一般是缺乏安裝文件。

Copyright © Linux教程網 All Rights Reserved