2012-03-06 223 views
0

我在QtCreator中有一個包含.c和.cpp文件的項目,現在可以在我當前的工具鏈GCC下編譯和運行。QTcreator交叉編譯

我想移植這個代碼在運行linux angstrom分佈的arm5內核上運行它。

爲了做到這一點:

1,我需要得到與Linux-的ARMv5TE-Linux的gnueabi工具鏈,例如內置QTlibraries,

2-使QT一個新項目,並添加此版本的Qt到它。

3-加的Linux的ARMv5TE-Linux的gnueabi工具鏈中qtcreator的工具鏈路徑,所以我可以用它打造我的代碼。

4-當我按構建,qmake可以生成willuse此Linux的結構ARMv5TE-Linux的gnueabi工具鏈編譯用gcc所述.c文件和cpp文件與g的生成文件++。

我對我的邏輯正確嗎?

另外,如何執行上面的step1?

謝謝

如果我下載上面的工具鏈和其它的bin路徑添加到QTcreator,我將能夠建立我正在討論上述(含c和cpp文件)的同一個項目?

回答

1

我使用了ARM9 S3C Mini2440。請從Qt站點下載源代碼並編譯它。下面Qt4.6

@host:/qt-everywhere-opensource-src-4.6.2#./configure \ 
-opensource \ 
-confirm-license \ 
-release -shared \ 
-embedded arm \ 
-xplatform qws/linux-arm-g++ \ 
-depths 16,18,24 \ 
-fast \ 
-optimized-qmake \ 
-pch \ 
-qt-sql-sqlite \ 
-qt-libjpeg \ 
-qt-zlib \ 
-qt-libpng \ 
-qt-freetype \ 
-little-endian -host-little-endian \ 
-no-qt3support \ 
-no-libtiff -no-libmng \ 
-no-opengl \ 
-no-mmx -no-sse -no-sse2 \ 
-no-3dnow \ 
-no-openssl \ 
-no-webkit \ 
-no-qvfb \ 
-no-phonon \ 
-no-nis \ 
-no-opengl \ 
-no-cups \ 
-no-glib \ 
-no-xcursor -no-xfixes -no-xrandr -no-xrender \ 
-no-separate-debug-info \ 
-nomake examples -nomake tools -nomake docs \ 
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib 

@host:/qt-everywhere-opensource-src-4.6.2# make 
@host:/qt-everywhere-opensource-src-4.6.2# make install 

配置工作install命令後,你將有ARM Qt4.6在/usr/local/Trolltech/QtEmbedded-4.6.2-arm。創建一個符號鏈接到ARM qmake工具

ln -s /usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin/qmake /usr/local/bin/qmake-arm 

創建和環境文件,以切換到Qt ARM。讓我們把它setenv-qt-arm.sh

export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.6.2-arm 
export PATH=/usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib:$LD_LIBRARY_PATH 
export CPLUS_INCLUDE_PATH=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include/c++:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include/c++/4.3.2/arm-none-linux-gnueabi:$CPLUS_INCLUDE_PATH 

爲了交叉編譯項目

cd /your_project_dir 
. /<path_to>/setenv-qt-arm.sh 
qmake-arm 
make 

我沒有交叉編譯QtCreator Qt工程,我用以前的命令來代替。如果你將你的qmake設置爲正確的文件(qmake-arm),我認爲應該沒有問題,因爲這個qmake會生成編譯你的項目所需的所有Makefile文件