2010-07-08 5 views
2

probablement débutants facile question: Je veux ajouter le drapeau du compilateur /EHsc à mon projet et avons essayé les deuxAjouter drapeau du compilateur pour Visual Studio 2005 avec CMake 2.8.1

SET_TARGET_PROPERTIES(name_of_my_project PROPERTIES COMPILER_FLAGS "/EHsc") 

et

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

dans mon CMakeLists.txt. Avec les deux, CMake génère une solution Visual Studio sans se plaindre.

EDIT: J'ai d'abord demandé pourquoi les deux versions ne fonctionnaient pas. Eh bien, parce que je suis un idiot et j'ai fait une erreur ailleurs pour qu'aucune des deux lignes ne soit traitée. Pourtant, je me demande si les deux versions sont équivalentes.

Répondre

2

Ils sont équivalents sur un projet qui n'a qu'une seule cible.

SET_TARGET_PROPERTIES définit l'indicateur du compilateur pour la cible nommée (qui dans votre cas est également le nom du projet). Si vous avez plus d'une cible, les autres cibles n'auront pas le drapeau "/ EHsc" défini.

SET(CMAKE_CXX_FLAGS ...) définit les indicateurs C++ pour toutes les cibles dans le répertoire en cours, ainsi que dans les sous-répertoires. Vous pouvez donc l'utiliser pour définir des indicateurs C++ globaux qui s'appliquent à toutes vos cibles, c'est-à-dire les bibliothèques et les exécutables définis dans le projet.

Questions connexes