Maison >développement back-end >C++ >Comment lier des programmes C avec Boost en utilisant CMake sur Ubuntu ?

Comment lier des programmes C avec Boost en utilisant CMake sur Ubuntu ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 10:08:22878parcourir

How to Link C   Programs with Boost Using CMake on Ubuntu?

Lier des programmes C avec Boost à l'aide de CMake sur Ubuntu

Problème

Lors de la tentative de liaison d'un programme C avec la bibliothèque Boost sur Ubuntu, les éléments suivants Une erreur peut être rencontrée :

main.cpp:(.text+0x3b): undefined reference to `boost::program_options::options_description::m_default_line_length'

Cette erreur se produit lorsque la bibliothèque Boost nécessaire n'est pas correctement liée au programme.

Solution utilisant CMake

Pour résoudre ce problème, il est essentiel d'exploiter la fonction find_package de CMake pour localiser la bibliothèque Boost. En règle générale, un script nommé FindBoost.cmake est inclus avec la plupart des installations CMake.

Ce script fournira des instructions sur la façon d'utiliser Boost_INCLUDE_DIR pour inclure les fichiers d'en-tête Boost et Boost_LIBRARIES pour créer un lien vers les bibliothèques Boost dans votre projet CMake. Voici un exemple de la façon d'y parvenir :

FIND_PACKAGE(Boost 1.40 COMPONENTS program_options REQUIRED)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})

ADD_EXECUTABLE(anyExecutable myMain.cpp)

TARGET_LINK_LIBRARIES(anyExecutable LINK_PUBLIC ${Boost_LIBRARIES})

Informations supplémentaires

  • Pour plus d'informations sur FindBoost.cmake, reportez-vous à la documentation officielle de Boost : [Documents CMake](https ://cmake.org/Wiki/FindBoost)
  • Pour accéder au code source de FindBoost.cmake, visitez le Dépôt GitHub : [FindBoost.cmake](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:
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