在一个 QtCreator 版本中使用 cmake 构建失败,而它与另一个版本以及来自终端的 catkin_make 一起使用

Posted

技术标签:

【中文标题】在一个 QtCreator 版本中使用 cmake 构建失败,而它与另一个版本以及来自终端的 catkin_make 一起使用【英文标题】:Building with cmake fails in one QtCreator version while it works with another and also with catkin_make from terminal 【发布时间】:2019-03-22 09:08:13 【问题描述】:

我正在尝试构建我的 ROS 系统。我确实安装了两个不同的 QtCreator 版本。从 QtCreator 4.5.1 构建失败,而从 QtCreator 3.5.1 构建工作正常。我得到的错误如下:

Running "/usr/bin/cmake /directory/catkin_ws/src/neuromorphic_stereo '-GCodeBlocks -
Ninja'" in /directory/catkin_ws/build.
CMake Error: The source "/directory/catkin_ws/src/neuromorphic_stereo/CMakeLists.txt" 
does not match the source "/directory/catkin_ws/src/CMakeLists.txt" used to generate
cache.  Re-run cmake with a different source directory.
*** cmake process exited with exit code 1.

正如我所说,从 QtCreator 3.5.1 或终端构建完全相同的项目就可以了。我之前已经遇到过这个问题,据我记得当时我刚刚删除了我的 catkin-worksspace 的构建目录,它运行良好。这一次没有奏效。我已经能够从 4.5.1 构建这个项目,但我无法弄清楚我在做什么不同,并且错误消息对我没有任何帮助。

【问题讨论】:

【参考方案1】:

Catkin 可以使用 2 个工具构建项目。 Catkin-Tools 和 Catkin 制作。如果我没记错旧版本的 Qt 使用 catkin-make 构建项目like that。但是最新版本的 uf Qt 默认使用 Catkin 构建工具(顺便说一句,这可以在构建部分的属性中更改)。如果您想使用 Qt 的 bouth 版本,我建议将 4.5.1 属性中的构建工具从 Catkin-Tools 更改为 catkin make。如果你想用另一个工具来构建项目,你是正确的,你需要清理它(或手动删除 build 和 devel 文件夹)

【讨论】:

以上是关于在一个 QtCreator 版本中使用 cmake 构建失败,而它与另一个版本以及来自终端的 catkin_make 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 cmake 部署 QtCreator

cmake 安装后从 QtCreator 运行项目

带有 CMake 的 QtCreator,在编辑器中错误地解析了 __cplusplus 值

使用 CMake 编译 QTCreator 和 VisualStudio 代码

如何使用 QtCreator 为 Android/iOS 构建基于 CMake 的项目

使用 QtCreator 设置 GDB