qt交叉編譯拷貝
㈠ 有關QT CREATOR 交叉編譯的問題
請先把QtE成功移植到板子上.
然後把QtE的qmake和交叉編譯的工具鏈添加到QtCreator中.
在PC上寫完界面後,把項目的編譯環境改成QTE再編譯一下.把生成的的可執行程序和QTE的lib, nfs或tftp到板子上.然後還要改變環境變數,有幾個必須改的環境變數.
export QTDIR=
export QTDEDIR=
export PATH=
export LD_LIBRARY_PAHT=
全部添加指向你的lib.如果你怕麻煩可以把QTE的lib考到/lib目錄中.
然後就可以./你的可執行程序了.
㈡ Qt的交叉編譯問題
修改QtCreator的配置。
tools-->Options--->Build && Run --->Qt Versions
把你的開發板的編譯工具鏈扔進去。再到你發的那個圖里設置。
㈢ 怎樣交叉編譯qt-x11-opensource-src-4.3.2
可以的,只需要把QtVersion設置好就可以了。
點擊Tools->Options->Qt4->Qt Versions.
然後添加你已經編譯的Qtembedded目錄進去,就可以編譯了。
很簡單的。
還有,在你的工程中的Release配置中,必須保證Qt Version是Qtembedded,也就是你剛才新建的那個Qt Version
Qt Creator默認是Default Qt version的。
這需要點擊左邊的Projects來修改。
如果你前面把Default Qt Version改為Qtembedded了,就不用再改了。
另外,交叉編譯的可執行文件是不能用QtCreator調試的,因為硬體平台不一樣。
㈣ linux交叉編譯Qt 失敗
設置環境變數 export QT_DEBUG_PLUGINS=1
重新運行程序
Cannot load library /opt/Qt-5.12.4/plugins/platforms/libqxcb.so2
輸入ldd /opt/Qt-5.12.4/plugins/platforms/libqxcb.so
顯示缺少 libxkbcommon,並展示其路徑。
然後將顯示路徑中的拷貝到需要的目錄中。
㈤ 如何進行Qt應用程序的交叉編譯
首先得把我們在X86機上調好的程序進行交叉編譯,如果在X86上都沒有通過的話。。那就不用交叉編譯了,(肯定是通不過的),還是到正題吧,設置好環境變數,我們用以用echo 來查看環境變數,echo $TMAKEPATH ,如果返回的不是.../qws/linux-arm-g++ 的字元的話,我們一定得從新設置,
export TMAKEPATH=/tmake 的安裝路徑/qws/linux-arm-g++ ,同時QTDIR一定得要指定QTE的安裝路徑,設置過程如下:
export QTDIR=...../qt-2.3.7
以上環境設置好後,我們可以使用tmake來生成Makefile,注意這里我們是用tmake,而不是用qmake(注意),tmake工具在tmake包裡面。 具體做法,我們可以在命令行下打:
tmake -o Makefile 工程名.pro
這樣我們就新生成了一個Makefile文件,下一步,我們要打開這個文件,做一些小的修改
1: 將LINK=arm-linux-gcc 改為:LINK=arm-linux-g++
2:將LIBS=$(SUBLIBS) -L$(QTDIR)/lib -lm -lqte這句話改為:
LIBS=$(SUBLIBS) -L/opt/gcc-2.3.2-glibc-3.3.2/lib -L$(QTDIR)/lib -lm -lqte
加上你的交叉編譯的庫。
最後我們可以make了,一個可以在您的板子上可以運行的二進制文件產生了。linux
㈥ 請高手指點,為什麼QT交叉編譯好以後,可執行文件在板子上執行出現一下問題,求幫忙
//你這樣試試,你上面只是設置執行環境,直接執行下面代碼
LD_LIBRARY_PATH=/庫絕對路徑你的執行文件
//如果再不行,你直接將所需庫拷貝到/lib和/usr/lib裡面去
㈦ 緊急求助QT程序交叉編譯
要將我們寫好的程序發布到開發板上,我們需要對Qt/Embedded 重新編譯,與前面在宿主機上編譯類似,步驟如下:
1. Build Qt/Embedded
tar –xzvf qt-embedded-2.3.10-free.tar.gz
mv qt-2.3.10 qt-2.3.10-target
export TMAKEDIR=$PWD/tmake-1.13
export QT2DIR=$PWD/qt-2.3.2
export QTEDIR=$PWD/qt-2.3.10-target
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
make
出現
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new[](unsigned int)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete(void*)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `__cxa_pure_virtual'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete[](void*)'
/public/qt/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status
make[4]: *** [t1]
暫時不管它,不影響的。下面的第2步: 「修改tmake 配置文件」 即可解決此類問題。
這步完成後,我們會在/$QTEDIR/lib/目錄下面看到libqte.so libqte.so.2 libqte.so.2.3 libqte.so.2.3.10 這四個文件,我們可以使用file 命令來查看這個庫文件是否是我們需要的在開發板上跑的庫。
file libqte.so.2.3.10
libqte.so.2.3.10: ELF 32-bit LSB shared object, ARM, version 1 (ARM), stripped
有了這個庫以後我們就可以把它拷貝到我們的開發板中相應的庫目錄下面,這里我們選擇了開發板上的/usr/lib 目錄,將/$QTEDIR/lib/下的libqte.so*復制到/usr/lib 目錄下。
首先要建立宿主機和開發板的通訊,假設本機的ip 地址為192.168.0.56 並且/root/share 為共享文件夾。
cp –arf /$QTEDIR/lib/libqte.so* /root/share
啟動minicom
mount –t nfs –o nolock 192.168.0.56:/root/share /mnt/nfs將文件復制到開發板上
cp –arf /mnt/nfs/libqte.so* /usr/lib
本篇文章來源於 黑軟基地-中國最大的黑客軟體安全教程QQ資源下載站! 原文鏈接:http://www.hackvip.com/article/sort0136/sort0186/Hackvip_184143.html
㈧ ubuntu Qt4.7.0應用程序交叉編譯能生成二進制可執行文件嗎
Qt交叉編譯沒有任何問題,配置說起來也不是很復雜。
首先我們需要的東西有:
交叉編譯器:如arm-linux-gcc
Qt經過 arm-linux-gcc 交叉編譯過的庫:也就是把Qt的庫自己用arm-linux-gcc編譯,需要大幾個小時,將交叉編譯好的Qt庫拷貝在開發板對應路徑。
在QtCreator里的
「工具->選項->構建和運行」 的「Qt版本」標簽頁中指定經過交叉編譯過的qmake文件路徑;
「工具->選項->構建和運行」 的「編譯器」標簽頁中指定arm-linux-gcc編譯器的路徑和相關文件
「工具->選項->構建和運行」 的「構建套件(Kit)「標簽頁中指定上面設置好的」Qt版本「和」編譯器「
之後在Qt的項目中可以在不同平台之間隨意切換編譯。交叉編譯生成的二進制文件即可在開發板上運行。
㈨ linux c: Qt4.7.0交叉編譯後移植(tiny 6410)
請您試一下這個命令,查看您的widget調用什麼庫了。
$arm-none-linux-gnueabi-objmp ./widget | greep NEEDED
是不是libc庫您沒放到開發板/lib里?
㈩ 如何進行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工具來分析目標系統的以來庫,然後相關的庫到目標文件系統內。通常我們也是採取腳本的方式來完成。 一般而言,凡是有規律的或者重復性的工作,我們都可以採取腳本的方式來解決。