我在 QtCreator 中有一个包含 .c 和 .cpp 文件的项目,现在可以在我当前的工具链 GCC 下正常构建和运行。
我想移植此代码以在运行 linux angstrom 发行版的 arm5 内核上运行它。
这样做:
1-例如,我需要使用 linux-armv5te-linux-gnueabi-toolchain 构建的 QTlibraries,
2-在QT中创建一个新项目并将这个版本的qt添加到其中。
3- 在 qtcreator 的工具链路径中添加 linux-armv5te-linux-gnueabi-toolchain 以便我可以用它构建我的代码。
4- 当我按下 build 时,qmake 将生成一个 makefile,它将使用此 linux-armv5te-linux-gnueabi-toolchain 用 gcc 编译 .c 文件,用 g++ 编译 .cpp 文件。
我的逻辑正确吗?
另外,如何执行上面的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
安装命令后,您的 /usr/local/Trolltech/QtEmbedded-4.6.2-arm
中将拥有 ARM Qt4.6。创建指向 ARM qmake 工具的符号链接(symbolic link)
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
关于linux - QTcreator交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576260/