Maison > développement back-end > C++ > Comment lier avec succès un programme C à Boost à l'aide de CMake ?

Comment lier avec succès un programme C à Boost à l'aide de CMake ?

Susan Sarandon
Libérer: 2024-12-12 18:58:15
original
498 Les gens l'ont consulté

How to Successfully Link a C   Program with Boost Using CMake?

Liaison d'un programme C avec Boost à l'aide de CMake

Ce guide aborde la question de la liaison d'un programme C avec la bibliothèque Boost à l'aide de CMake. Lorsqu'ils tentent de lier le programme, les utilisateurs peuvent rencontrer des erreurs telles que "référence non définie à `boost::program_options::options_description::m_default_line_length'".

Configuration CMake pour la liaison

Pour résoudre ce problème, modifiez le fichier CMake pour incorporer les éléments suivants lignes :

find_package(Boost 1.40 COMPONENTS program_options REQUIRED)
include_directories(${Boost_INCLUDE_DIR})

add_executable(my_target_file main.cpp)

target_link_libraries(my_target_file LINK_PUBLIC ${Boost_LIBRARIES})
Copier après la connexion

Explication du code

  • find_package(Boost) : Trouve la bibliothèque Boost et ses composants, dans ce cas program_options.
  • include_directories() : ajoute le répertoire d'inclusion Boost à la recherche path.
  • add_executable() : crée un fichier exécutable nommé my_target_file à partir du fichier source main.cpp.
  • target_link_libraries() : lie la bibliothèque Boost à l'exécutable.

Approche alternative

Si la méthode find_package échoue, vous pouvez spécifier manuellement le chemin et le nom de la bibliothèque Boost, comme indiqué ci-dessous :

include_directories(/path/to/Boost/include)

target_link_libraries(my_target_file ${Boost_PROGRAM_OPTIONS_LIBRARY})
Copier après la connexion

Ressources supplémentaires

  • [Documentation officielle de CMake pour FindBoost](https://cmake.org/cmake/help/v3.21/module/FindBoost.html)
  • [FindBoost.cmake Code source sur GitHub](https://github.com/Kitware /CMake/blob/master/Modules/FindBoost.cmake)

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