我在QtCreator中有一个包含.c和.cpp文件的项目,现在可以在我当前的工具链GCC下构建和运行。
我想将此代码移植到运行linux angstrom发行版的arm5核心上运行它。
要做到这一点:
1 - 我需要使用linux-armv5te-linux-gnueabi-toolchain构建QTlibraries,例如,
2-在QT中创建一个新项目并将此版本的qt添加到其中。
3-在qtcreator的工具链路径中添加linux-armv5te-linux-gnueabi-toolchain,这样我就可以用它构建我的代码了。
当我按下build时,qmake会生成一个makefile,它将使用这个linux-armv5te-linux-gnueabi-toolchain来编译带有gcc的.c文件和带有g ++的.cpp文件。我的逻辑是否正确?
另外,我如何执行上面的步骤1?
谢谢
如果我下载上面的工具链并将其添加到QTcreator的bin路径,我是否能够构建我上面讨论的相同项目(包含c和cpp文件)?
答案 0 :(得分: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
在安装命令之后,您的/usr/local/Trolltech/QtEmbedded-4.6.2-arm
中将包含ARM Qt4.6。创建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