QTcreator交叉编译

问题描述:

我在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文件)的同一个项目?

我使用了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文件