Включение C ++ 14 в Qt Creator 4.0 Clang Static Analyzer с помощью CMake

Я использую некоторые функции C ++ 14 с Clang 3.8 в своем проекте. Система сборки - CMake, поэтому я запускаю статический анализ clang следующим образом:

$ scan-build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=clang \
/path/to/source
$ scan-build make

Таким образом, построение и анализ работают отлично, но я также хочу использовать его из Qt Creator через интеграцию с графическим интерфейсом. Когда я нажимаю Analyze -> Clang Static Analyzer, clang останавливается на первом файле с использованием функций C ++ 14 с ненулевым кодом ошибки и такими ошибками, как:

error: <a_cool_c++14_feature> is a C++14 extension

я добавил

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

к моему самому верхнему CMakeLists.txt, но это не сработало. Я также попытался установить CXX_STANDARD командой set_property для всех целей, но я получил тот же результат в Qt Creator, а сборка вручную с консоли работает хорошо.

Как использовать C ++ 14 в Clang Static Analyzer из графического интерфейса Qt Creator?


person Sergey    schedule 15.12.2016    source источник
comment
baptiste-wicht.com/posts/ 2014/04 / Не имеет отношения к Qt Creator.   -  person usr1234567    schedule 15.12.2016


Ответы (2)


попробуйте добавить -std=c++14 в Option> C ++> Code Model.

Моя такая:

-Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-unused-macros -Wno-newline-eof -Wno-exit-time-destructors -Wno-global-constructors -Wno-gnu-zero-variadic-macro-arguments -Wno-documentation -Wno-shadow -Wno-missing-prototypes -Wsuggest-override -std=c++14

Примечание: вам необходимо повторно открыть каждый файл, чтобы он вступил в силу. Если вы не можете его редактировать, вам необходимо сначала включить плагин «Модель кода» (справка> о плагинах ...) и перезапустить QtCreator

person hl037_    schedule 20.12.2016

Мне помогла следующая строка в CMakeLists.txt

set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14)
person Fedorov7890    schedule 16.07.2018