我是CMake的新手,想知道在LINUX环境下,如何让CMake在gcc和g++编译器之间选择。具体来说,我的问题如下: 如果一个项目由.c和.cpp文件组成,是否正确的做法是使用gcc编译.c文件而使用g++编译.cpp文件? 如果一个项目只有c文件或cpp文件,CMake的默认编译操作是什么?是否可以更改?
简而言之,是的,两者都可以。 你可以与几乎所有东西进行交互。有一些标记和变量将扩展绑定到语言中;然后语言绑定到编译器选项/可执行文件,这定义了工具集和构建目标。 请查看以下链接以获取文档。它们都是一些愉快且简短的阅读材料。 更改编译器/工具集 按语言分配扩展名 LANGUAGE变量 注意:这个Wiki可能已经过时,但对于重要和教育性的事项仍然适用。 附注:还有一大堆相关选项。如果想进行更长时间的阅读,请查看以下文档章节:源文件属性和语言变量。第2点和第3点来自这些章节。
据我所知,CMake仅查看文件扩展名。因此,如果您将.c文件重命名为.cpp,则在我所知的范围内,它将使用g++编译。要更改这种行为很容易。CMake使用环境变量来确定使用哪个编译器。如果您想将编译器更改为例如clang和clang ++,只需执行以下操作:export CC=clang export CXX=clang++然后再运行cmake。
* <LANG> *
变量,但你可以选择变量名 =)。 - luk32