【问题标题】:CMake: CMakeLists for C11CMake:C11 的 CMakeLists
【发布时间】:2016-10-10 14:05:08
【问题描述】:
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 项目编写正确 CMakeLists 的现成解决方案。

set(CMAKE_C_STANDARD 11)

这条线设定了 C11 标准。

set(CMAKE_COMPILER_IS_GNUCC TRUE)

这一行将 gcc 设置为编译器。

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")

这一行将编译标志设置为 IDE 的默认值。

我的 CMakeLists.txt 是否正确?

【问题讨论】:

    标签: cmake ide clion c11


    【解决方案1】:
    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 会告诉你不是吗?

    【讨论】:

    • 谢谢。我删除了这些行,它在加载符号步骤时工作得更快。
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多