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



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

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

很快,两者都是的。

你几乎可以和所有东西一起残害。有将扩展绑定到语言的标志和变量;然后是定义工具集和构建目标的编译器选项/可执行文件的语言。

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

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

注意:维基可能已过时,但在重要和教育问题的情况下应该成立。

附言。有一大堆相关选项。对于较长时间的阅读,您可以查看文档的以下部分:源文件的属性和语言的变量。2. 和 3.来自这些部分。

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

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

导出抄送=叮当导出 CXX=叮叮当当当

在运行 cmake 之前。

最新更新