cmake_minimum_required(VERSION 3.6)
project(Example)
set(CMAKE_C_STANDARD 11)
set(CMAKE_COMPILER_IS_GNUCC TRUE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set(SOURCE_FILES main.c)
add_executable(Example ${SOURCE_FILES})
我正在学习C11,并且正在使用CLion IDE。
在此IDE中,唯一可能的选择是将CMake用于项目,并且我阅读了CMake的一些手册(也在堆栈溢出中),而且我没有找到为C11项目编写正确的CMakeList的现成解决方案。
set(CMAKE_C_STANDARD 11)
这条线设定了C11标准。
set(CMAKE_COMPILER_IS_GNUCC TRUE)
这行将gcc设置为编译器。
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
此行将编译标志设置为IDE的默认值。
我的CMakeLists.txt是否正确?
最佳答案
set(CMAKE_COMPILER_IS_GNUCC TRUE)
CMAKE_COMPILER_IS_GNUCC
仅应读取以测试与当前生成器相对应的编译器,例如:if(CMAKE_COMPILER_IS_GNUCC)
# do something special for GNU C compiler
endif()
只需将其删除。如果需要指定编译器,则可能需要阅读this(但不必这样做)。
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
这行绝对不做任何事情:您为
CMAKE_C_FLAGS
设置了自己的内容。只需将其删除。我的CMakeLists.txt是否正确?
在构建时,CLion会告诉您它不是吗?