【发布时间】:2012-09-10 14:26:33
【问题描述】:
我是 CMake 的新手,我想知道 LINUX 环境中的 C++/C 项目 CMake 如何在 gcc 和 g++ 之间选择编译器。更具体地说,我的问题如下:
- 如果一个项目由.c和.cpp文件组成,是不是真的 .c 文件将由 gcc 编译,而 .cpp 文件将由 用g++编译?
- 如果一个项目只有c文件或者cpp文件,默认是什么 CMake的编译操作?能改吗?
【问题讨论】:
我是 CMake 的新手,我想知道 LINUX 环境中的 C++/C 项目 CMake 如何在 gcc 和 g++ 之间选择编译器。更具体地说,我的问题如下:
【问题讨论】:
很快,两者都是。
您几乎可以处理所有问题。有标志和变量将扩展绑定到语言;然后是定义工具集和构建目标的编译器选项/可执行文件的语言。
查看以下文档链接。这些是一些令人愉快的简短阅读。
注意:该 wiki 可能已过时,但它应该在重要和具有教育意义的情况下保留。
附言。有很多相关的选项。如需更长的阅读时间,您可以查看以下文档部分:Properties on Source Files 和 Variables for Languages。 2. 和 3. 来自这些部分。
【讨论】:
*<LANG>* 变量,但您可以根据需要选择变量名称 =)。
据我所知,CMake 只查看文件扩展名。因此,如果您将 .c 文件重命名为 .cpp,据我所知,它将使用 g++ 进行编译。
改变这种行为很容易。 CMake 使用环境变量来查看要使用的编译器。如果您想将编译器更改为例如clang 和 clang++,你可以这样做
导出 CC=clang 导出 CXX=clang++
在运行 cmake 之前。
【讨论】: