CMAKE_CXX_COMPILER 未在 qtcreator 中设置

Posted

技术标签:

【中文标题】CMAKE_CXX_COMPILER 未在 qtcreator 中设置【英文标题】:CMAKE_CXX_COMPILER not set in qtcreator 【发布时间】:2015-04-07 11:23:07 【问题描述】:

有没有办法(如命令行参数或 CMakeLists.txt 中的某些函数)打印提供给 cmake 调用的所有命令行参数?等价于 bash "echo $@"

我需要这个来调试,为什么从 qtcreator 调用的 cmake 找不到我的编译器 (msvc12)。在检查 qtcreator 源之后,我看到它根据所选套件通过 cmake 参数附加了一些环境。我收到了类似

的消息

CMAKE_CXX_COMPILER 未设置

,当我同时选择“Nmake Desktop Qt MSVC2013 ...”或“Ninja Qt MSVC2013”​​时。

当我从命令行调用 cmake 时,它​​会找到没有附加参数的编译器:

-- 检查工作 CXX 编译器使用:Visual Studio 12 2013 -- 检查工作的 CXX 编译器使用:Visual Studio 12 2013 -- 工作

【问题讨论】:

查看 CMakeFiles/CMakeError.log 和 CMakeFiles/CMakeOutpu.log,您可以在其中找到测试输出的详细信息。 CMakeFiles 文件夹未创建,仅缓存文件。然后我通过“choco install ninja”安装了ninja,在qtcreator重新启动后,ninja和nmake都可以工作。不知道为什么 Nmake 生成器以前不起作用。 如果您的问题得到解决,请关闭问题。如果解决方案对其他人有帮助,请回答自己并接受答案。 【参考方案1】:

我的主要问题是通过安装忍者解决的。我认为问题在于 qtcreator 调用的 cmake 找不到编译器:

CMAKE_CXX_COMPILER 未设置

安装ninja并重新启动qtcreator后,问题就消失了。

【讨论】:

【参考方案2】:

我在升级 Visual Studio 2017 后遇到了同样的问题。

由于某种原因,当在 Build & Run 的 cmake 配置中添加 (?) CMAKE_CXX_COMPILER 到 Visual Studio 编译器的位置时,它应该可以工作:

密钥:CMAKE_CXX_COMPILER 值:C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe ==> 将版本替换为正确的版本

不要忘记点击下方的“应用配置更改”。 不过很奇怪,因为在构建之后,cmake 运行变成了 CMake Project was parsed successfully. 并且信不信由你,CMAKE_CXX_COMPILER 消失了!

【讨论】:

以上是关于CMAKE_CXX_COMPILER 未在 qtcreator 中设置的主要内容,如果未能解决你的问题,请参考以下文章

C++学习(二六一)CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage

CMake通过工具链升级进行增量编译

四象限法则 - 便签工具(基于QtC++实现)

基于QtC++实现的网络远程控制系统

Qt云服务/云计算平台QTC(Qt Cloud Services)入门

让QtCreator在调试时显示字符串 Qt调试助手 QtDebuggingHelper qtc-debugging-helper