LINUX.ORG.RU

CMake игнорирует опцию C_STANDARD_REQUIRED

 ,


0

1

... и устанавливает стандарт C89. Прописал в CMakeLists.txt

project(hello-world LANGUAGES C)

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

...

Сборка падает при использовании inline функций, если собирать все руками с помощью clang/gcc с -std=c11 - все ок.

Это баг или фича такая?

Версия CMake 3.22.1

★★★★★

Чисто теоретически если проект находится в IDE, то IDE может изменять опции при сохранении CMakeLists.txt, либо при сборке.

Пробовал напрямую передавать?

cmake -B build -DCMAKE_C_COMPILER=clang -DCMAKE_C_STANDARD=11 -DCMAKE_C_STANDARD_REQUIRED=ON

cmake --build build

Dr64h ★★
()