Heim >Backend-Entwicklung >C++ >Wie verknüpfe ich mithilfe von CMake erfolgreich ein C-Programm mit Boost?

Wie verknüpfe ich mithilfe von CMake erfolgreich ein C-Programm mit Boost?

Susan Sarandon
Susan SarandonOriginal
2024-12-12 18:58:15498Durchsuche

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

Verknüpfen eines C-Programms mit Boost mithilfe von CMake

Diese Anleitung befasst sich mit dem Problem der Verknüpfung eines C-Programms mit der Boost-Bibliothek mithilfe von CMake. Beim Versuch, das Programm zu verknüpfen, können Benutzer auf Fehler wie „undefinierter Verweis auf „boost::program_options::options_description::m_default_line_length““ stoßen.

CMake-Konfiguration für die Verknüpfung

Um dieses Problem zu beheben, ändern Sie die CMake-Datei so, dass sie Folgendes enthält Zeilen:

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})

Erklärung des Codes

  • find_package(Boost): Findet die Boost-Bibliothek und ihre Komponenten, in diesem Fall program_options.
  • include_directories(): Fügt das Boost-Include-Verzeichnis zur Suche hinzu Pfad.
  • add_executable(): Erstellt eine ausführbare Datei mit dem Namen my_target_file aus der main.cpp-Quelldatei.
  • target_link_libraries(): Verknüpft die Boost-Bibliothek mit der ausführbaren Datei.

Alternativer Ansatz

Wenn die Wenn die find_package-Methode fehlschlägt, können Sie den Pfad und Namen der Boost-Bibliothek manuell angeben, wie unten gezeigt:

include_directories(/path/to/Boost/include)

target_link_libraries(my_target_file ${Boost_PROGRAM_OPTIONS_LIBRARY})

Zusätzliche Ressourcen

  • [Offizielle CMake-Dokumentation für FindBoost](https://cmake.org/cmake/help/v3.21/module/FindBoost.html)
  • [FindBoost.cmake-Quellcode auf GitHub](https://github.com/Kitware /CMake/blob/master/Modules/FindBoost.cmake)

Das obige ist der detaillierte Inhalt vonWie verknüpfe ich mithilfe von CMake erfolgreich ein C-Programm mit Boost?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn