1. windows下qt creator編寫的程序如何在linux下執行
qt的可移植性,指的是代碼不用修改,就可以在多個平台編譯通過 然後運行~~
這也就是qt一直說的 code less create more。
所以你需要把源碼文件在linux下再次編譯。
2. qt在linux上和移植時用的到底是哪個qmake
第一步,linux下編譯安裝qt
仍然是用的ok6410提供的qt-everywhere-opensource-src-4.7.1.tar.gz
1、首先在我自己的目錄/z 下新建個qt-x11,將文件拷貝解壓
sudo su (取得root許可權)
mkdir /z/qt-x11
cp qt-everywhere-opensource-src-4.7.1.tar.gz /z/qt-x11 (拷貝到新建的目錄)
tar zxvf qt-everywhere-opensource-src-4.7.1.tar.gz
解壓後查看得到:(其中qte4.7.1Makelog為後來生成的,一開始解壓後沒有,我是安裝完成後截的圖= =)
此處的build-all是飛凌公司寫好的腳本,是用於編譯開發板上的嵌入式的qt的,而此處要編譯linux的qt,因此對其進行修改,
gedit build-all
修改結果如下:主要是去掉環境變數的配置和qt的配置
注意此處將qt安裝在了新建文件夾/opt/qt-x11-4.7.1中,這個目錄要記住,因為後面配置qtcreator的時候要到這里找qmake
然後保存關閉,執行 ./build-all
等待。。。我感覺我等了一個下午,幸虧沒有提醒出錯,要不然我就哭了,編譯成功
第二步:安裝配置qtcreator
下載鏈接:http://download.qt-project.org/ 我都被自己的貼心感動得哭了T T
這里根據系統版本神馬的,我就參考了別人的文章下載了一個版本,姐實在被這些版本弄的想哭了,參考鏈接 http://xiaolong5750.blog.163.com/blog/static/44856246201421405034948/
版本是qt-creator-linux-x86-opensource-2.6.1.bin
1、將下載文件拷貝到/z 目錄下,在終端下,輸入命令
sudo ./qt-creator-linux-x86-opensource-2.6.1.bin
就會出現一個桌面安裝窗口,跟windows一樣安裝就很簡單了
對了,有個插曲,我在安裝過程中終端跳出了一個warning:designer:attempt to add child to。。。我網上搜了下竟然沒搜到這個問題,就直接忽略掉了。。不知道以後會不會有影響。。。
2、接著配置
在主界面中從菜單欄點擊"工具"->"選項"->在左側點擊「構建和運行」界面如下圖所示。
點擊qt版本,有些沒有自動檢測到qmake路徑,這是因為沒設置環境變數,手動添加,將剛安裝的qmake加入:
接著點擊編譯器:已自動檢測到
最後點擊 構建套件,點擊右端添加,
至此配置好用於linux上編譯的qmake,就可以在linux上跑程序了。
3、新建個小程序試下,新建過程參考http://xiaolong5750.blog.163.com/blog/static/44856246201421405034948/
插曲:我新建的時候,到最後跳出對話框說 「無法創建目錄。。。。」 網上查了有人說在安裝qtcreator的時候沒有用root許可權安裝神馬的,害我重裝一遍但也沒解決問題,幸虧最近在看《鳥哥的私房菜》,裡面說了些文件的許可權問題之類的,於是我把自己創建的工程所在的目錄的許可權都改成chmod 777,然後就沒問題了哈哈
建立工程後,build,run 結果如下:
linux
3. 請問Qt軟體在linux系統中如何打包移植
一、准備
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
構建一個新的根文件系統目錄,路徑為
/root/rootfs
二、具體步驟:
1、編譯安裝busybox
在官網下載最新版。可以參考如下幾處要修改的地方:
Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
Busybox Settings ---> Installation Options --->[]Dont't use /usr
Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
輸入如下命令,編譯並安裝。
# make;make install
2、編譯安裝tslib
# ./autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install
安裝目錄指明為 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是為了在編譯QTE時,不用指定tslib的頭文件和庫文件,方便以後程序開發。
注意:在做這一步前,需要做一個目錄鏈接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目錄下
# ln -s ../../usr/include ./
3、編譯安裝QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用這個配置,編譯後的QTE庫文件即可放在目標文件系統的/usr/lib下,而不是默認/usr/local/Trolltech/QtEmbedded-4.5.1 這個很深的目錄
2)、編譯
# make
# cp lib/* /root/rootfs/usr/lib -rd 將QTE庫文件拷貝到根文件系統的目錄
# cp plugins /root/rootfs/usr -rd 將QTE插件目錄拷貝到根文件系統的目錄
4、根文件系統的設置
1)、這時/root/rootfs/usr下應該有 bin etc include lib sbin目錄
tslib生成的etc目錄,包含一個tslib的配置文件 nf,編輯此文件,去掉mole_raw input前的注釋
# mv etc ../ 移動到rootfs的根目錄
2)、進行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
3)、編輯etc/profile,添加以下內容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最後,通過mkyaffs2image 製作鏡像,燒寫鏡像,啟動ts_calibrate校驗觸屏即可。