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文件