在一个 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,在编辑器中错误地解析了 __cplusplus 值
使用 CMake 编译 QTCreator 和 VisualStudio 代码