2016-11-17 4 views
2

CMake создает файл flags.make сКак отключить настройки CXX_FLAGS = -std = C++ 1y -g -O3 -std = гну ++ 11

CXX_FLAGS = -std=c++1y -g -O3 -std=gnu++11 

Первый -std устанавливается мной CMake а вторая генерируется cmake. Я не могу понять, откуда приходит вторая или как ее отключить.

Неужели кто-то столкнулся с той же проблемой и знает, как это решить?

ответ

0

Без вашего кода/проекта это сложно сказать. Догадка: вы включаете/в зависимости от внешней библиотеки, которая нуждается в C++ 11 (например, Boost) и имеет requested it from CMake.

Таким образом, чтобы изменить это с вашей собственной потребности для C++ 14 вы можете установить глобально CMAKE_CXX_STANDARD что-то вроде:

set(CMAKE_CXX_STANDARD 14) 

или указания конкретных compiler features необходимы в вашей библиотеке/исполняемый файл.

+0

Если вы устанавливаете 'CMAKE_CXX_STANDARD', вы, вероятно, также хотите установить' CMAKE_CXX_STANDARD_REQUIRED' и, вероятно, 'CMAKE_CXX_EXTENSIONS'. Все три должны быть уверены в том, чтобы получить нужное поведение. Объяснения того, как/почему их следует использовать вместе, можно найти здесь (https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/). –

Смежные вопросы