Maison > développement back-end > C++ > Comment ajouter correctement un éditeur de liens ou compiler des indicateurs dans CMake ?

Comment ajouter correctement un éditeur de liens ou compiler des indicateurs dans CMake ?

Linda Hamilton
Libérer: 2024-12-26 02:34:10
original
224 Les gens l'ont consulté

How to Correctly Add Linker or Compile Flags in CMake?

Comment ajouter un éditeur de liens ou compiler des indicateurs dans un fichier CMake

Énoncé du problème

Lors de la compilation d'un programme simple avec gestion des exceptions à l'aide d'arm-linux -androideabi-g compilateur, l'indicateur -fexceptions doit être ajouté pour activer la gestion des exceptions. Cependant, les tentatives d'ajout de cet indicateur via CMake à l'aide de set(CMAKE_EXE_LINKER_FLAGS) ou set(CMAKE_C_FLAGS) entraînent une erreur.

Solution

Pour ajouter un éditeur de liens ou compiler des indicateurs dans un fichier CMake, suivez ces étapes :

  1. Définir les flags : Utilisez les commandes suivantes pour définir l'indicateur -fexceptions :

    SET(FLAG_NAME -fexceptions)
    Copier après la connexion
  2. Ajouter aux variables CMake : Ajoutez l'indicateur aux variables CMake pertinentes . Pour les indicateurs du compilateur :

    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG_NAME}")
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG_NAME}")
    Copier après la connexion

    Pour les indicateurs de l'éditeur de liens :

    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG_NAME}")
    SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLAG_NAME}")
    Copier après la connexion
  3. Utiliser les propriétés cibles : Vous pouvez également utiliser les propriétés cibles :

    get_target_property(TEMP ${TARGET} COMPILE_FLAGS)
    if(TEMP STREQUAL "TEMP-NOTFOUND")
      SET(TEMP "")
    else()
      SET(TEMP "${TEMP} ")
    endif()
    SET(TEMP "${TEMP}${FLAG_NAME}")
    set_target_properties(${TARGET} PROPERTIES COMPILE_FLAGS ${TEMP})
    Copier après la connexion
  4. Choisissez une méthode : Sélectionnez l'une des les méthodes fournies en fonction de vos préférences. La méthode 2 est généralement recommandée.

En suivant ces étapes, vous pouvez ajouter avec succès un éditeur de liens ou compiler des indicateurs dans un fichier CMake et résoudre le problème de l'activation de la gestion des exceptions avec l'indicateur -fexceptions.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal