Windows 上的 QtCreator 使用 CodeSourcery 工具链为 Linux ARM 交叉编译

Posted

技术标签:

【中文标题】Windows 上的 QtCreator 使用 CodeSourcery 工具链为 Linux ARM 交叉编译【英文标题】:QtCreator on Windows to Cross Compile for Linux ARM with CodeSourcery Toolchain 【发布时间】:2012-07-10 09:10:26 【问题描述】:

我在我的 Windows 7 机器上安装了 Qt Creator,我的目标是 OMAP3 嵌入式 Linux 板。我下载了目标工具链 Sourcery-G++ Lite for Windows,并在我的 Windows 机器上安装了 MinGW (http://www.mingw.org/)。在 QT Creator 中,我将 CodeSourcery 工具链添加为“手动”工具链,如下图所示。然后,我尝试通过在“模拟时钟”演示应用程序的“项目”下编辑“构建设置”来使用此工具链构建演示 Qt 应用程序“模拟时钟”。但是工具链在 Build Settings 下不可用,如第二张图所示。

如何使用构建选项中的代码源工具链从 Qt Creator 构建此演示应用程序或任何 Qt 应用程序?我绝对必须使用 Windows 来完成这个(不能使用 Linux VM...)。

我相信这可能与为目标构建 Qt 库有关,但不确定这是否属实或如何在 Windows 上执行此操作。非常感谢您的帮助和洞察力。

编辑:新信息 - 需要帮助配置 Qt Creator:

我已使用 CodeSourcery 工具链构建 Qt 4.8 库且没有错误,并且在遵循 http://c2143.blogspot.com/?view=classic 之后,我在 /lib 目录中有 .so 文件。现在我正在尝试连接 CodeSourcery 编译器并将 Qt 4.8 构建到 Qt Creator,这样我就可以为目标板构建示例应用程序。

我阅读了以下文章: http://doc.qt.nokia.com/qtcreator-2.4/creator-project-qmake.html http://doc.qt.nokia.com/qtcreator-2.4/creator-tool-chains.html 描述如何将 Qt 版本的新工具链添加到 Qt Creator。请参阅所附图片,了解我如何配置 Qt Creator。我正在使用 Qt Creator 2.4.1。

我收到一个错误,没有在下面粘贴太多信息...对此或我的配置有什么想法吗?

09:51:07: Running build steps for project analogclock...
09:51:07: Configuration unchanged, skipping qmake step.
09:51:07: Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" 
arm-none-linux-gnueabi-g++ -c -pipe -march=armv7-a -mtune=cortex-a8 -mthumb -mfpu=neon -mfloat-abi=softfp -Wa,-mimplicit-it=thumb -O2 -Wall -W -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I"..\qt-4.8-src\include\QtCore" -I"..\qt-4.8-src\include\QtNetwork" -I"..\qt-4.8-src\include\QtGui" -I"..\qt-4.8-src\include" -I"." -I"c:\QtSDK\Examples\4.7\widgets\analogclock" -I"." -I"..\qt-4.8-src\mkspecs\default" -o analogclock.obj c:\QtSDK\Examples\4.7\widgets\analogclock\analogclock.cpp
arm-none-linux-gnueabi-g++ -c -pipe -march=armv7-a -mtune=cortex-a8 -mthumb -mfpu=neon -mfloat-abi=softfp -Wa,-mimplicit-it=thumb -O2 -Wall -W -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I"..\qt-4.8-src\include\QtCore" -I"..\qt-4.8-src\include\QtNetwork" -I"..\qt-4.8-src\include\QtGui" -I"..\qt-4.8-src\include" -I"." -I"c:\QtSDK\Examples\4.7\widgets\analogclock" -I"." -I"..\qt-4.8-src\mkspecs\default" -o main.obj c:\QtSDK\Examples*\4.7\widgets\analogclock\main.cpp
C:\Users\pclass\Desktop\qt_creator_toolchain\qt-4.8-src\bin\moc.exe -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I"..\qt-4.8-src\include\QtCore" -I"..\qt-4.8-src\include\QtNetwork" -I"..\qt-4.8-src\include\QtGui" -I"..\qt-4.8-src\include" -I"." -I"c:\QtSDK\Examples\4.7\widgets\analogclock" -I"." -I"..\qt-4.8-src\mkspecs\default" c:\QtSDK\Examples\4.7\widgets\analogclock\analogclock.h -o moc_analogclock.cpp
mingw32-make.exe: *** [moc_analogclock.cpp] Error -1073741515
09:51:09: The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project analogclock (target: Desktop)
When executing build step 'Make'

【问题讨论】:

【参考方案1】:

您首先需要目标的 Qt 库。您可以使用 CodeSourcery 工具链构建它。然后,可以使用一些工具(qmake、moc...)和库。

【讨论】:

感谢您的评论 - 请看我修改后的问题。【参考方案2】:

我将 mingw 添加到路径中,然后进行了构建,它成功了。如果我在示例中执行“文件”命令,它会给我以下内容,这看起来很有希望。现在在板上尝试一下。

$ 文件模拟时钟 模拟时钟:ELF 32 位 LSB 可执行文件,ARM,版本 1 (SYSV),动态链接(使用共享库),用于 GNU/Linux 2.6.16,未剥离

【讨论】:

以上是关于Windows 上的 QtCreator 使用 CodeSourcery 工具链为 Linux ARM 交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上的 QtCreator 使用 CodeSourcery 工具链为 Linux ARM 交叉编译

Windows 上的 QtCreator/QMake 完全禁用调试构建

QtCreator 1.3、Qt 4.6.2 和 cmake 在 windows 上的构建问题

Webview 在 Windows 上的 mingw 中无法在 Qt Creator 中工作

如何使用 ClangCodeModel 插件在 QtCreator 中设置 C++ 标准?

如何将 Windows SDK 与 Qt Creator 一起使用