2010-07-08 2 views
2

вероятно легко начинающих вопрос: Я хочу добавить флаг компилятора /EHsc в мой проект и попытался какДобавить флаг компилятора для Visual Studio 2005 с CMake 2.8.1

SET_TARGET_PROPERTIES(name_of_my_project PROPERTIES COMPILER_FLAGS "/EHsc") 

и

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

в моем CMakeLists.txt. В обоих случаях CMake генерирует решение Visual Studio без жалоб.

EDIT: Первоначально я спросил, почему обе версии не работают. Хорошо, потому что я идиот и сделал ошибку в другом месте, так что ни одна из двух строк, где бы ни обрабатывалась. Тем не менее, мне интересно, эквивалентны обе версии.

ответ

2

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

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

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

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