A. 如何進行Qt應用程序的交叉編譯
1.設置環境變數: PATH=添加為交叉環境下編譯後生成的qmake路徑,通常和主機的系統是一種架構,同時需要確保交叉gcc編譯器在在PATH定義 QMAKESOEC=交叉編譯的對象的的平台描述文件,例如makespec/qws/linux-arm-g++ QTDIR=Qt的安裝文件,存放這庫和頭文件 LD_LIBRARY_PATH=存放的是Qt的交叉編譯後的庫,准備為目標編譯鏈接的庫 2。執行環境變數 通常我們都會將以上的設置放置在一個bash腳本中,需要的時候就執行一下。開始編譯 1.使用qmake -project來生成項目文件****.pro 2使用qmake來生成Makefile文件 3使用make來編譯移植:使用readeif工具來分析目標系統的以來庫,然後相關的庫到目標文件系統內。通常我們也是採取腳本的方式來完成。 一般而言,凡是有規律的或者重復性的工作,我們都可以採取腳本的方式來解決。
B. linuxqt緙栬瘧
linux涓嬫墽琛宷t紼嬪簭鎬庝箞緙栬瘧榪愯岋紵
1銆佸湪Linux涓嬬殑鍛戒護琛岀紪杈戠▼搴忥細#mkdirhello//mkdir鍛戒護鍒涘緩涓涓猦ello鐩褰#cdhello//cd鍛戒護鍒囨崲鍒板垰鎵嶅壋寤虹殑hello鐩褰#vimain.cpp//鍦╤ello鐩褰曚腑鐢╲i鍒涘緩涓涓猰ain.cpp鏂囦歡灝嗕笅闈㈢殑浠g爜杈撳叆鍒癿ain.cpp鏂囦歡涓#include
鎬庢牱鍦╱buntu涓嬪畨瑁卶t宓屽叆寮忥紵
1cd~/Qtenv 2 3chmo+xqt-sdk-linux-x86-opensource-2010.04.bin 4 5./qt-sdk-linux-x86-opensource-2010.04.bin 涓轟簡鏂囦歡綆$悊鏂逛究錛屽皢sdk涔熷畨瑁呭湪Qtenv鏂囦歡澶逛腑銆 2銆佽В鍘嬫簮浠g爜鍖 鍦ㄧ敤鎴風洰褰曚笅寤虹珛涓涓猀tenv鐩褰曪紝鐢ㄤ簬瀛樻斁緙栬瘧婧愭枃浠躲 mkdir$HOME/Qtenv 鍦╭tembedded鐩褰曚笅鍒涘緩arm鍜寈86鐩褰曘傚壋寤鴻繖涓や釜鐩褰曚富瑕佹槸涓轟簡緙栬瘧涓涓鐢ㄦ埛arm寮鍙戠増鐨凲TE錛屽彟涓涓鐩褰曠敤浜庡瓨鏀劇敤浜巕vfb鐨剎86涓婹TE錛岃繖鏍鋒紨紺哄拰寮鍙戦兘寰堟柟渚褲 1cd~/Qtenv 2mkdirarmx86 鎺ヤ笅鏉ュ皢婧愪唬鐮佸寘鍒嗗埆澶嶅埗鍒癮rm鍜寈86涓嬪苟瑙e帇緙┿傝繖鏍峰仛鉶界劧嫻璐逛簡涓浜涚‖鐩樼┖闂達紙ps錛氬湪瀹誇富鏈轟笂鐨勭‖鐩樺お涓嶅奸挶浜嗭級錛屼絾鑳戒負灝嗘潵鍐嶉厤緗鍜岀紪璇戣妭鐪佸緢澶氭椂闂淬 1cd~/Qtenv 2mvqt-everywhere-opensource-src-4.6.3.tar.bz2./arm 3cd~/Qtenv/arm 4tarxjvfqt-everywhere-opensource-src-4.6.3.tar.bz2 5 6cd~/Qtenv/x86 7mvqt-everywhere-opensource-src-4.6.3.tar.bz2./x86 8tarxjvf./x86/qt-everywhere-opensource-src-4.6.3.tar.bz2 瑙e帇緙╁悗鍒嗗埆閽堝筧rm騫沖彴鍜寈86騫沖彴榪涜岄厤緗錛岄厤緗鍓嶅彲杈撳叆 ./configure-embedded-help 榪涜岄厤緗甯鍔╂煡璇錛屾牴鎹騫沖彴閰嶇疆錛屽苟緙栬瘧鍜屽畨瑁呮枃浠躲傚叾鍛戒護浠g爜濡備笅錛 1cd~/Qtenv/arm 2./configure-prefix$HOME/Qtenv/arm-embeddedarm-nomakedocs-nomakedemo-nomakeexamples 3make 4makeinstall 5 6cd~/Qtenv/x86 7./configure-prefix$HOME/Qtenv/arm-embeddedx86-nomakedocs-nomakedemo-nomakeexamples 8make 9makeinstall 鍦ㄧ粡榪囨極闀跨殑閰嶇疆銆佺紪璇戝悗灝卞畬鎴愪簡QTE鐨勫畨瑁呫傛湰浜哄湪arm鐗堢殑緙栬瘧榪囩▼涓鍑虹幇榪囦袱涓閿欒錛屽湪鍙傝冦婂湪arm-linux-gcc3.4.1涓嬬紪璇憅t-embedded-4.6.2銆嬪畬鎴愮紪璇戙 瀹屾垚緙栬瘧鍜屽畨瑁呭悗闇瑕佸圭郴緇熺殑鐜澧冨彉閲忚繘琛岃劇疆錛岃劇疆鍙浠ユ槸涓存椂鎬ц劇疆鍜屾案涔呮ц劇疆銆備復鏃惰岃劇疆鏄鐩存帴鍦ㄥ懡浠ょ獥鍙h緭鍏 1exportQTENV=$HOME/Qtenv 2exportQTXDIR=$QTENV/qtsdk 3exportQTEDIR=$QTENV/x86 4exportPATH=$QTXDIR/qt/bin:$PATH 5exportLD_LIBRARY_PATH=$QTXDIR/lib:$LD_LIBRARY_PATH 6exportQVFBDIR=$QTXDIR/qt/bin 7exportQTEMAKEDIR=$QTEDIR/bin 浠ヤ笂榪欎簺鍙橀噺鍙浠ユ牴鎹鑷宸辯殑鍠滃ソ榪涜屽炲垹銆傝繖縐嶈劇疆鏂規硶鍦ㄥ叧闂褰撳墠鍛戒護緇堢鍚庡け鏁堛 絎浜岀嶆柟寮忔槸鍦ㄥ綋鍓嶇敤鎴風殑涓葷洰褰曚笅錛岀紪杈.bash_profile鏂囦歡錛屽姞鍏ヤ笂榪板懡浠よ岋紝淇濆瓨閲嶅惎鍛戒護緇堢鍗沖彲銆
濡備綍鍦ˋRMLinux鐜澧冧腑鎼寤篞T榪愯岀幆澧冿紵
1銆佸彲浠2銆丵tCreator鍙鏄涓涓闆嗘垚寮鍙戝伐鍏鳳紝榪欎釜鐗堟湰闅忔剰錛岀綉涓婁笅灝卞彲浠ワ紝Qte涓嶆槸鐢ㄦ渶鏂幫紝鑰屾槸鏈濂界敤璺熶綘鍦↙inux寮鍙板紑鍙戜竴鏍風殑銆傞栧厛瑕佸湪Linux涓嬩氦鍙夌紪璇慟te鐨勫簱錛岀劧鍚庡啀灝哃ib榪欎簺鏂囦歡縐繪嶅湪鏉垮瓙涓婏紝鏈鍚庨氳繃浜ゅ弶緙栬瘧濂界殑搴撳幓緙栬瘧浣犲湪pc
鏍戣帗媧句笅鎬庢牱榪愯岀Щ妞嶇殑QT紼嬪簭錛
浣犲彲浠ュ弬鑰僑QLiteStudio榪欎釜Qt鍐欑殑璺ㄥ鉤鍙癝QLite綆$悊宸ュ叿,瀹冭嚜宸辨墦鍖呬簡渚濊禆鐨凲t搴,鍙浠ュ仛鍒拌В鍘嬪嵆鐢,鍏煎逛笉鍚孡inux鍙戣岀増.閬撶悊鍏跺疄璺焀indows鐗圦t紼嬪簭鑷甯Qt搴撳樊涓嶅.
緙栬瘧鍓嶇粰榪炴帴鍣ㄤ紶涓涓鍙傛暟:
璇存槑:
-Wl琛ㄧず鍛婅瘔緙栬瘧鍣ㄥ皢鍚庨潰鐨勫弬鏁頒紶閫掔粰閾炬帴鍣.
rpath鏄痝cc鐨勪竴涓鍙傛暟,褰撶▼搴忚鍔犺澆鏃,浼氭悳瀵籸path鐩褰,瀵繪壘鍏變韓搴.
rpath娣誨姞鐨勭洰褰曚俊鎮淇濆瓨鍦ㄥ彲鎵ц屾枃浠朵腑.
$ORIGIN琛ㄧず鍙鎵ц屾枃浠舵墍鍦ㄧ殑鐩褰.
涔熷氨鏄榪愯屾椂紼嬪簭浼氬厛鍘昏嚜宸辨墍鍦ㄧ殑鐩褰曠殑lib閲屽幓鍔犺澆渚濊禆搴,娌℃湁鐨勮瘽鍐嶅幓緋葷粺搴撻噷鎵.
濡傛灉浣犵殑紼嬪簭鍦ㄧ紪璇戞椂娌℃湁浼犻抮path鍙傛暟,閭d綘涔熷彲浠ョ敤patchelf鏉ヤ慨鏀逛綘紼嬪簭鐨剅path:
娉ㄦ剰:patchelf淇鏀規枃浠跺悗鍐峴trip浼氬艱嚧鏂囦歡鎹熷潖.
鎵浠ュ簲璇ュ厛鐢╯trip鍒犻櫎絎﹀彿琛ㄧ緝灝忎簩榪涘埗鏂囦歡,鐒跺悗鍐嶇敤patchelf璁劇疆rpath.
棰樺栬瘽,Android涓婃棦娌℃湁glibc搴,涔熸病鏈夊簱閾炬帴鍣╨d-linux.so.3.
濡傛灉浣犺佹妸DebianARM(濡傛爲鑾撴淳Raspbian)涓婄殑杞浠舵斁鍒癆ndroid涓婅窇,浣犱竴鏍峰彲浠ユ墦鍖呯▼搴忎緷璧栫殑鍏變韓搴,璁╃▼搴忎篃鑳借窇鍦ˋndroid涓,姣斿侾HP:
涔熷氨鏄浣犳妸搴撻摼鎺ュ櫒ld-linux-armhf.so.3鍜孭HP渚濊禆鐨勫簱閮芥斁鍒/data/local/tmp/web/lib閲,鐒跺悗璁劇疆涓鍒鍚,灝辮兘鍦ˋndroid鐨刟dbshell閲岃繍琛屾爲鑾撴淳鐨凱HP浜.
褰撶劧,浣犱篃鍙浠ョ敤patchelf璁劇疆PHP鐨剗nterpreter鍜宺path,鏁堟灉宸涓嶅:
鎬庢牱浜ゅ弶緙栬瘧涓涓猀T搴旂敤紼嬪簭錛
1.璁劇疆鐜澧冨彉閲忥細rPATH錛濇坊鍔犱負浜ゅ弶鐜澧冧笅緙栬瘧鍚庣敓鎴愮殑qmake璺寰勶紝閫氬父鍜屼富鏈虹殑緋葷粺鏄涓縐嶆灦鏋勶紝鍚屾椂闇瑕佺『淇濅氦鍙塯cc緙栬瘧鍣ㄥ湪鍦≒ATH瀹氫箟rQMAKESOEC錛濅氦鍙夌紪璇戠殑瀵硅薄鐨勭殑騫沖彴鎻忚堪鏂囦歡錛屼緥濡俶akespec/qws/linux-arm-g++rQTDIR=Qt鐨勫畨瑁呮枃浠訛紝瀛樻斁榪欏簱鍜屽ご鏂囦歡rLD_LIBRARY_PATH=瀛樻斁鐨勬槸Qt鐨勪氦鍙夌紪璇戝悗鐨勫簱錛屽噯澶囦負鐩鏍囩紪璇戦摼鎺ョ殑搴搑2銆傛墽琛岀幆澧冨彉閲弐閫氬父鎴戜滑閮戒細灝嗕互涓婄殑璁劇疆鏀劇疆鍦ㄤ竴涓猙ash鑴氭湰涓錛岄渶瑕佺殑鏃跺欏氨鎵ц屼竴涓嬨傚紑濮嬬紪璇憆1.浣跨敤qmake錛峱roject鏉ョ敓鎴愰」鐩鏂囦歡****.pror2浣跨敤qmake鏉ョ敓鎴怣akefile鏂囦歡r3浣跨敤make鏉ョ紪璇戠Щ妞嶏細浣跨敤readeif宸ュ叿鏉ュ垎鏋愮洰鏍囩郴緇熺殑浠ユ潵搴擄紝鐒跺悗鐩稿叧鐨勫簱鍒扮洰鏍囨枃浠剁郴緇熷唴銆傞氬父鎴戜滑涔熸槸閲囧彇鑴氭湰鐨勬柟寮忔潵瀹屾垚銆俽涓鑸鑰岃█錛屽嚒鏄鏈夎勫緥鐨勬垨鑰呴噸澶嶆х殑宸ヤ綔錛屾垜浠閮藉彲浠ラ噰鍙栬剼鏈鐨勬柟寮忔潵瑙e喅銆
C. :-1: 錯誤:Qt Creator 需要設置一個編譯器來構建。在構建套件選項里設置一個編譯器。
首先,官方預編譯版本不帶有編譯器(除mingw版本外),其它版本都需要自行安裝。
有兩個選擇:
完整安裝vs2012旗艦版,安裝完之後佔用空間8個多G,(組件最小化之後,不包含幫助),給個地址http://go.microsoft.com/?linkid=9810280,序列號網路,基本能用
安裝windows sdk 8.1 中的 VC++ compiler 2012,其它全部勾選掉,或者連同sdk一塊裝了。
http://go.microsoft.com/fwlink/?LinkID=226658 在線安裝程序,或者通過win8應用商店安裝。
之後進入工具->選項->構建和運行->編譯器選項卡里就會識別出來 vc++編譯器。切換到構建套件選項卡,然後自動檢測配置。如果檢測不出來一個desktop套件的話,那麼手動選擇建立一個就行了。