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
576 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!

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