linux - QTcreator交叉编译

标签 linux qt-creator

我在 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/

相关文章:

c - 非字母定界符

QtCreator : QML Debugger, 连接被拒绝 - 关闭 QML 调试器?

c++ - 跟踪 QTextBrowser 中的文本插入

c - 未找到 Qt 创建者标准头文件

c++ - Windows 10 : The application was unable to start correctly (0xc000a200)

c++ - QtCreator Build/Clean 究竟是做什么的?

java - 在 Ubuntu 上安装 Tomcat 5.5(使用 apt)导致 CATALINA_HOME 未设置

c - 线程具有相同的 id

linux - 验证字符串并确保它由特定字符组成

linux - 将 debian 镜像恢复到另一个 SSD 磁盘后无可启动设备错误