Добавить флаг компилятора для Visual Studio 2005 с CMake 2.8.1 - PullRequest
3 голосов
/ 08 июля 2010

Вероятно, простой вопрос для начинающих: Я хочу добавить флаг компилятора /EHsc в мой проект и попробовал оба варианта

SET_TARGET_PROPERTIES(name_of_my_project PROPERTIES COMPILER_FLAGS "/EHsc")

и

SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")

в моем CMakeLists.txt.С обоими CMake генерирует решение Visual Studio без жалоб.

РЕДАКТИРОВАТЬ: Первоначально я спросил, почему обе версии не работают.Ну, потому что я идиот и допустил ошибку в другом месте, чтобы ни одна из двух строк не была обработана.Тем не менее, мне интересно, если обе версии эквивалентны.

1 Ответ

2 голосов
/ 08 июля 2010

Они эквивалентны для проекта, который имеет только 1 цель.

SET_TARGET_PROPERTIES устанавливает флаг компилятора для именованной цели (которая в вашем случае также является именем проекта). Если у вас более одной цели, то для других целей не будет установлен флаг "/ EHsc".

SET(CMAKE_CXX_FLAGS ...) установит флаги C ++ для всех целей в текущем каталоге, а также в любых подкаталогах. Таким образом, вы можете использовать это для установки глобальных флагов C ++, которые применяются ко всем вашим целям, то есть к библиотекам и исполняемым файлам, определенным в проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...