CMake如何选择gcc和g ++进行编译?

fee*_*ree 34 c++ cmake

我是CMake的新手,我想知道LINUX环境中的C++/C项目如何让CMake可以选择gcc和g ++之间的编译器.更具体地说,我的问题如下:

  1. 如果一个项目由.c和.cpp文件组成,那么.c文件是由gcc编译的,而.cpp文件是由g ++编译的吗?
  2. 如果项目只有c文件或cpp文件,那么CMake的默认编译操作是什么?是否可以改变它?

luk*_*k32 16

不久,两者都是.

几乎所有东西都可以破坏你.有标记和变量绑定语言的扩展; 然后是语言到定义工具集和构建目标的编译器选项/可执行文件.

查看以下文档链接.这些都是一些令人愉快的简短读物.

  1. 更改编译器/工具集
  2. 每种语言的扩展
  3. LANGUAGE变量

注意:维基可能已经过时,但如果出现重要和教育问题,它应该保留.

PS.有很多相关的选择.对于更长时间的阅读,您可以查看以下文档部分:源文件的属性语言的变量.2.和3.来自这些部分.


小智 14

据我所知CMake只看文件扩展名.因此,如果您将.c文件重命名为.cpp,据我所知,它将使用g ++进行编译.

很容易改变这种行为.CMake使用环境变量来查看要使用的编译器.如果您想将编译器更改为例如clang和clang ++,您可以这样做

export CC = clang export CXX = clang ++

在运行cmake之前.