LINUX.ORG.RU

qtcreator и последний стандарт C++

 ,


0

1

Вот тут нахваливали QtCreator, даже для не-Qt'шной разработки. И я решил попробовать написать пробный helloworld.

Поставил его из рeп Ubuntu 18.04. Создал Empty проект, добавил main.cpp. Добавил в *.pro «CONFIG += с++17». Собираю, и вижу, что флаг -std в компилятор не передается. Хотя с с++11 передается.

Что за фантастика такая?

★★★★★

Ответ на: комментарий от RazrFalcon

CMake уже научился задавать стандарт не костылями?


CMake - это вообще набор костылей и подпорок. Самый правильный вариант указания стандарта крестов в modern CMake сейчас примерно такой:

target_compile_features(target_name PUBLIC cxx_std_17)

m0rph ★★★★★ ()
Последнее исправление: m0rph (всего исправлений: 1)
Ответ на: комментарий от m0rph

CMake - это вообще набор костылей и подпорок. Самый правильный вариант указания стандарта крестов в modern CMake сейчас примерно такой: target_compile_features(target_name PUBLIC cxx_std_17)

Вот тут согласен. Тем более в этом случае данное требование стандарта распростроняется на зависимые цели (например при подключениии в них заголовочных файлов из данной цели).
! Но в случае, когда у нас есть проект с несколькими подпроектами (в каждом из которых используется одинаковый стандарт), то удобнее использовать CMAKE_CXX_STANDARD т.к. в этом случае это нужно будет сделать только в главном CMakeLists.txt, тогда как в случае target_compile_features() стандарт требуется указывать для каждой цели.

rumgot ★★★★★ ()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от DELIRIUM

Конечно костыли, т.к. в CMake как я вижу уже полный треш и угар:

  • target_compile_features(target_name PUBLIC cxx_std_17)
  • CMAKE_CXX_STANDARD
  • CMAKE_CXX_STANDARD_REQUIRED

что еще новенького напридумывают? Ппц как юзер-френдли, ага. Нужно пол дня убить в копании документации и гуглежу на стековерфлов.

kuzulis ()
Последнее исправление: kuzulis (всего исправлений: 3)