如何使用CMake只编译C语言代码?

17

我有一段C代码,我坚持使用gcc编译器而非其他的C++编译器进行编译!我需要一个适用于它的CMakeLists.txt文件!你能帮我吗?这是我的简单项目:

main.c
1个回答

39

这就是CMake的基础知识:

cmake_minimum_required(VERSION 2.6.0)
    
# here we specify that the project is C language only, so the default
# C compiler on the system will be used
project(myprogram C)

add_executable(myprogram main.c)

这就是将C文件编译成可执行文件所需的全部。

将您的项目指定为C语言项目应该足够满足您的需求。

如果这还不够,您可以在调用cmake时在命令行上强制指定编译器。

mkdir build && cd build
export CC=gcc    
cmake ..
make

或者

mkdir build && cd build
cmake .. -DCMAKE_C_COMPILER=gcc
make

请注意,正如评论中提到的那样,即使在项目中混合使用不同语言,CMake也足够智能,在遇到扩展名为.c的文件时会正确调用C编译器。
请参阅“project”命令的文档。当指定额外参数(如版本或描述)时,语法略有不同。

在CMake中,您在哪里指定使用C编译器? - Aryan
1
project 指令 - SirDarius
我认为CMake会自动将*.c文件视为C语言文件,不需要任何魔法。 - rubenvb
我更愿意使用CMake变量CMAKE_C_COMPILER,并使用-D选项,而不是使用“export”命令。 - mathk
1
@rubenvb 是的,我重新阅读了文档,如果项目没有语言规范,默认情况下等同于具有 C 和 C++。因此,最好仍然只指定 C,以避免无用的编译器检查。 - SirDarius
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接