首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTcreator交叉编译

QTcreator交叉编译
EN

Stack Overflow用户
提问于 2012-03-06 08:34:57
回答 1查看 1.7K关注 0票数 0

我在QtCreator中有一个包含.c和.cpp文件的项目,现在在我当前的工具链GCC下构建和运行得很好。

我想把这段代码移植到运行linux angstrom发行版的arm5核心上。

为此,请执行以下操作:

1-我需要使用linux-armv5te-linux-gnueabi- QTlibraries构建工具链,例如,

2-在QT中创建一个新项目,并将此版本的qt添加到其中。

3-在qtcreator的工具链路径中添加linux-armv5te-linux-gnueabi-toolchain,这样我就可以用它来构建代码了。

4-当我按下build时,qmake将生成一个makefile,该makefile将使用这个linux-armv5te-linux-gnueabi-toolchain来编译带有gcc的.c文件和带有g++的.cpp文件。

我的逻辑正确吗?

另外,我如何执行上面的step1?

谢谢

如果我下载上面的工具链,并将它的bin路径添加到QTcreator,我是否能够构建与上面讨论的相同的项目(包含c和cpp文件)?

EN

回答 1

Stack Overflow用户

发布于 2012-03-06 12:47:29

我使用了ARM9 S3C Mini2440。请从Qt网站下载源代码并编译。下面的配置使用Qt4.6

代码语言:javascript
复制
@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工具的symblic链接

代码语言:javascript
复制
ln -s /usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin/qmake /usr/local/bin/qmake-arm

创建环境文件,以便切换到Qt ARM。让我们称它为setenv-qt-arm.sh

代码语言:javascript
复制
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

为了交叉编译你的项目

代码语言:javascript
复制
cd /your_project_dir
. /<path_to>/setenv-qt-arm.sh
qmake-arm
make

我没有使用QtCreator交叉编译Qt项目,而是使用前面的命令。如果您将qmake设置为正确的文件( qmake -arm),我认为应该没有问题,因为此qmake将生成编译项目所需的所有Makefile

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9576260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档