我在Qt Creator 3.0.1中设置了一个工具包,指向我的交叉工具链。这一直有效,直到我遇到bug in the compiler,现在必须升级到更新的版本。
我获得了一个更新的工具链。我进入了Creator,编辑了我的工具包,并更新了编译器和gdb二进制文件的路径以指向新的工具链。
然而,当我构建我的项目时,它仍然在调用旧的工具链的编译器。
我甚至完全删除了我的工具包,编译器和调试器,并重新创建了他们的配置,但没有任何乐趣。
我仔细检查了正在使用的mkspec,并且没有任何内容存在编译器的硬编码路径,只有像QMAKE_CXX = $${CROSS_COMPILE}g++
这样的东西。我没有设置CROSS_COMPILE变量。我确实尝试过设置它(在Creator的构建环境编辑器中),但也没有任何欢乐。
如何让Creator使用我的新工具链?
编辑 - 新信息
我尝试运行创建者在构建时执行的相同qmake命令行(根据其构建输出)。首先,我正在调用的qmake是在不创建makefile的情况下返回命令行。这是我正在运行的命令:
/qt5/bin/qmake /s/src/tfs/porject_dirs/Myproject.pro -r -spec devices/linux-am335x-g++ CONFIG+=declarative_debug CONFIG+=qml_debug
所以,我添加了一个-d
来获得一些qmake调试输出。我找到了一些可疑的行,指向我的mkspecs目录中的一些文件。
构建Qt时安装的这些文件是什么?
qconfig.pri
qdevice.pri
qfeatures.pri
qmodules.pri
四个中的三个(不是qfeatures.pri
)在其中包含了用于构建Qt的编译器的硬编码路径。我怀疑这些是我的问题。
为什么Qt Creator允许指定编译器,如果这些文件可能覆盖它?编辑这些文件是否安全?我是否必须重建Qt只是为了更改用于构建我的应用程序的编译器?