#cmake #ide #clion #c11
#cmake #ide #clion #c11
Вопрос:
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 (в stack overflow тоже), и я не нахожу готового решения для написания правильных CMakeLists для проектов C11.
set(CMAKE_C_STANDARD 11)
Эта строка устанавливает стандарт C11.
set(CMAKE_COMPILER_IS_GNUCC TRUE)
Эта строка устанавливает gcc в качестве компилятора.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
Эта строка устанавливает флаги компиляции по умолчанию для IDE.
Является ли мой CMakeLists.txt правильно?
Ответ №1:
set(CMAKE_COMPILER_IS_GNUCC TRUE)
CMAKE_COMPILER_IS_GNUCC
следует читать только для проверки того, какой компилятор соответствует вашему текущему генератору, что-то вроде:
if(CMAKE_COMPILER_IS_GNUCC)
# do something special for GNU C compiler
endif()
Просто удалите его. Возможно, вы захотите прочитать это, если вам нужно указать свой компилятор (но вам это не нужно).
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
Эта строка абсолютно ничего не делает: вы устанавливаете CMAKE_C_FLAGS
ее собственное содержимое. Просто удалите его.
Является ли мой CMakeLists.txt правильно?
При сборке CLion сообщает вам, что это не так?
Комментарии:
1. Спасибо. Я удалил эти строки, и они работают быстрее на этапе загрузки символов.