什么优先于CMAKE_CXX_编译器、CMAKE_工具链_文件等?

什么优先于CMAKE_CXX_编译器、CMAKE_工具链_文件等?,cmake,Cmake,在CMake中设置编译器的方法有很多。(CMAKE_CXX_编译器、CXX等) 什么优先 CXX CMAKE_CXX_编译器 等 在使用CMake一年后,我只是问开发人员 以下是他们在对话中给出的答案: 什么优先? 这是按最特定到最不特定的顺序排列的 1.CMAKE_工具链_文件 此变量必须在cmake项目中的第一个项目调用之前设置 要清除工具链文件,只需在文件内设置CMAKE__编译器。更正确的说法是,工具链可以改变设置编译器的方式 2.CMAKE__编译器 这些变量必须在cmake项

在CMake中设置编译器的方法有很多。(CMAKE_CXX_编译器、CXX等)

什么优先

  • CXX
  • CMAKE_CXX_编译器

在使用CMake一年后,我只是问开发人员

以下是他们在对话中给出的答案:

什么优先? 这是按最特定到最不特定的顺序排列的

1.CMAKE_工具链_文件 此变量必须在cmake项目中的第一个项目调用之前设置

要清除工具链文件,只需在文件内设置CMAKE__编译器。更正确的说法是,工具链可以改变设置编译器的方式

2.CMAKE__编译器 这些变量必须在cmake项目中的第一个项目调用之前设置

3.环境变量 A.CC/CXX 您还可以通过设置环境变量来指定编译器

CC指定C编译器:

CXX指定CXX编译器:

B环境路径 作为最后的手段CMake尝试检查您的路径,并在路径中搜索已知/常见的二进制名称

提示:使用路径缩短您的命令! 在你的路径中有东西也可以缩短上面的命令,这样你就不必使用绝对路径

例如,如果clang++在您的路径中,您也可以这样做

cmake -S . -B build -D CMAKE_CXX_COMPILER=clang++
为什么上面的建议对VisualStudio生成器不起作用? 以上建议仅适用于命令行生成器。(忍者、Unix Makefiles等)

VS生成器不注意CMAKE__编译器,因此设置它对该生成器没有任何作用

VisualStudio处理事情的方式略有不同。因为它当然有。这是Visual Studio。VisualStudio有自己的规则,因为它喜欢让一切变得困难

VisualStudio是围绕工具集设计的

工具集文件本质上是VisualStudio解决方案描述编译器/链接器的方式

如果需要,可以在计算机上找到工具链

这是它们在我的机器上的位置

C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Microsoft\VC\v160\Platforms

CMake使您能够通过VisualStudio指定目标工具集和体系结构

请参见此处必要的CMake文档:

哇,这只是VisualStudio的一个恼人的工作流程。如何使用CMake+Visual Studio+Ninja 这是一个多么奇怪的问题,现在有了答案:

VisualStudio团队已经添加了官方的CMake支持。因此,您可以使用VisualStudio和CMake以一种不那么烦人的方式


DuckDuckGo或Google“VisualStudio中的CMake项目”

在使用CMake一年后,我只是问开发人员

以下是他们在对话中给出的答案:

什么优先? 这是按最特定到最不特定的顺序排列的

1.CMAKE_工具链_文件 此变量必须在cmake项目中的第一个项目调用之前设置

要清除工具链文件,只需在文件内设置CMAKE__编译器。更正确的说法是,工具链可以改变设置编译器的方式

2.CMAKE__编译器 这些变量必须在cmake项目中的第一个项目调用之前设置

3.环境变量 A.CC/CXX 您还可以通过设置环境变量来指定编译器

CC指定C编译器:

CXX指定CXX编译器:

B环境路径 作为最后的手段CMake尝试检查您的路径,并在路径中搜索已知/常见的二进制名称

提示:使用路径缩短您的命令! 在你的路径中有东西也可以缩短上面的命令,这样你就不必使用绝对路径

例如,如果clang++在您的路径中,您也可以这样做

cmake -S . -B build -D CMAKE_CXX_COMPILER=clang++
为什么上面的建议对VisualStudio生成器不起作用? 以上建议仅适用于命令行生成器。(忍者、Unix Makefiles等)

VS生成器不注意CMAKE__编译器,因此设置它对该生成器没有任何作用

VisualStudio处理事情的方式略有不同。因为它当然有。这是Visual Studio。VisualStudio有自己的规则,因为它喜欢让一切变得困难

VisualStudio是围绕工具集设计的

工具集文件本质上是VisualStudio解决方案描述编译器/链接器的方式

如果需要,可以在计算机上找到工具链

这是它们在我的机器上的位置

C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Microsoft\VC\v160\Platforms

CMake使您能够通过VisualStudio指定目标工具集和体系结构

请参见此处必要的CMake文档:

哇,这只是VisualStudio的一个恼人的工作流程。如何使用CMake+Visual Studio+Ninja 这是一个多么奇怪的问题,现在有了答案:

VisualStudio团队已经添加了官方的CMake支持。因此,您可以使用VisualStudio和CMake以一种不那么烦人的方式


DuckDuckGo或Google“Visual Studio中的CMake项目”

标题中的问题与问题正文中的问题不一致。至少第二个和第三个问题(来自正文)应该作为单独的问题帖子提问。我已经更新了问题和答案。现在更好了吗?更好了,但是“CMake如何找到编译器和链接器?”这一部分已经包含在这个问题中了:。(如果您觉得引用的问题缺少一些答案,那么只需添加答案即可)。所以,唯一的“什么优先”部分仍然存在。明白了。更新为“什么优先?”问题。标题中的问题与t中的问题不一致