Maison >développement back-end >C++ >Comment ajouter des exceptions -fexceptions et d'autres indicateurs de liaison/compilateur dans CMake ?

Comment ajouter des exceptions -fexceptions et d'autres indicateurs de liaison/compilateur dans CMake ?

DDD
DDDoriginal
2024-12-17 00:02:25651parcourir

How to Add -fexceptions and Other Linker/Compiler Flags in CMake?

Comment incorporer un éditeur de liens et compiler des indicateurs dans un fichier CMake

Lors de la compilation avec le compilateur arm-linux-androideabi-g, ajout d'une exception la gestion nécessite l’inclusion de l’indicateur -fexceptions. Bien que cela fonctionne en ligne de commande, le problème survient lors de la tentative de compilation à l'aide d'un fichier CMake.

Pour ajouter l'indicateur -fexceptions dans CMake, suivez ces étapes :

  1. Définir une constante : Déclarez les drapeaux comme constante.
SET(CMAKE_EXCEPTIONS_FLAG "-fexceptions")
  1. Ajouter aux variables CMake : ajoutez l'indicateur aux variables CMake appropriées.
SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${CMAKE_EXCEPTIONS_FLAG}")
SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXCEPTIONS_FLAG}")
  1. Utiliser les propriétés cibles : Vous pouvez également utiliser les propriétés cibles pour définir les flags.
get_target_property(TEMP ${THE_TARGET} COMPILE_FLAGS)
if(TEMP STREQUAL "TEMP-NOTFOUND")
    SET(TEMP "")
else()
    SET(TEMP "${TEMP} ")
endif()
SET(TEMP "${TEMP}${CMAKE_EXCEPTIONS_FLAG}")
set_target_properties(${THE_TARGET} PROPERTIES COMPILE_FLAGS ${TEMP})

En mettant en œuvre ces étapes, vous pouvez incorporer les indicateurs nécessaires dans votre fichier CMake et réussir à compiler votre code avec la fonctionnalité de gestion des exceptions souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn