最近在做有關(guān)嵌入式的東西,很多不懂。 1、想在板子上運行用QT編好的程序,必須要在PC的linux系統(tǒng)里用QT編嗎?不需要.但是必須經(jīng)過交叉編譯. (window 無法進行交叉編譯.)2、在windows系統(tǒng)里編好的QT程序,經(jīng)過交叉編譯后能直接運行在板子上嗎?還是板子需要弄個QT環(huán)境啥的?就是往里面安個相同版本的QT?必須要保證板子里已經(jīng)移植成功QTE.編譯過的程序才可以跑在板子上.(關(guān)于如何移植QTE是個大問題.如果你是新手.one month,good luck to you) 交叉編譯的時候用的是QTE的庫而不是普通的QT庫.而且這個庫的版本和編譯工具鏈必須和板子上的一致. 追問 意思是說 我可以在windows7的 QT Creator或者 Designer里編好程序 然后在虛擬機的linux系統(tǒng)里交叉編譯?弄交叉編譯的linux系統(tǒng)里要裝個QTE的庫是嗎?然后板子里也要裝個linux里一樣的QTE庫是嗎? 那windows里的 QT跟linux或者板子里的庫能對應(yīng)上嗎????都是些白癡問題。。。。。 回答 只要QtE的版本和你windows里的Qt不要相差太遠就ok了.在Linux里面交叉編譯的時候. 最好在linux虛擬機里面也裝個Qt Creator 然后把QtE庫和交叉編譯工具鏈添加入Qt Creator中.然后就可以進行交叉編譯了.所謂QtE庫的移植.不是在開發(fā)板上裝個QtE庫, 其實是在pc 機上將QtE源碼編譯完成然后將庫文件放到開發(fā)板上的.再制定一些環(huán)境變量就ok了.一定要記得用來編譯QtE庫源碼的編譯工具鏈一定要和你編譯開發(fā)板上的linux系統(tǒng)的編譯工具鏈一致.這個差一點點都不行.就是說如果開發(fā)板里面的系統(tǒng)不是你搞的,而且你不知道用來編譯開發(fā)板里面的系統(tǒng)的編譯工具鏈的版本的話,你就有大麻煩了.... 追問 ????、把Qte庫跟交叉編譯鏈加入Qt Creator干嘛???交叉編譯不就是直接arm-linux-gcc一下嗎。。。。 回答 加入Qt Creator 是為了讓交叉編譯變得更簡單.不然你要自己寫makefile 用make porject命令.... 追問 問最后一個問題哈 那我直接不用在windows 里面編QT了,在linux里面編好,然后交叉編譯放到板子的linux也可以是嗎???我的交叉編譯版本是3.4.1的,linux里裝什么版本的Qt 和開發(fā)板需要移植什么版本的Qte比較好呢???? 謝謝。。。。 回答 可以直接在linux里面編寫代碼的.等你配置完Qt Creator 后就會有兩種開發(fā)環(huán)境.一種是Qt + gcc/g++一種是QtE + arm-linux-gcc/g++. 編寫代碼的時候用第一種,交叉編譯的時候用第二種.(這個開發(fā)環(huán)境的搭建也挺難的...)QtE的庫也要和交叉編譯工具鏈配合,記得不要使用版本太高的QtE的庫,我挑戰(zhàn)過最新的QtE庫結(jié)果悲劇了.你可以試試的.也許運氣好一下就過去了.(我是暈過去了的不知道你怎樣....)網(wǎng)上有試驗成功的例子就照只他們來選QtE的庫. 1、首先你要了解什么叫交叉編譯:交叉編譯簡單的說就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。在linux上編譯Qt程序需要安裝工具鏈,這個工具鏈很好安裝,直接解壓就可以,具體方法網(wǎng)上有很多。2、WIN平臺編譯出來的東西不可以直接在板子上運行。因為ARM平臺不同于X86的平臺。QT的環(huán)境就是說,你運行QT程序時,要到指定的系統(tǒng)里面去找相應(yīng)的東西,比如庫之類的。。所以這要是需要指定的。QT版本兼容性還可以,不一定要相同版本的QT。。*******樓上說的太過絕對 :window不是無法進行進行編譯,window上面是要相應(yīng)的插件才可以。MDK就是個反例。 追問 交叉編譯環(huán)境弄好了 就是不太懂后面的 QT程序可以在我的windows系統(tǒng)里編好 然后拿到PC的linux系統(tǒng)里交叉編譯 再傳到開發(fā)板的嵌入式linux系統(tǒng)里對吧? 這三個地方的QT都是什么版本的呢????我只知道什么QTE QTopia QT Creator之類的。。。。完全不懂啊。。。求指教 |
|