Heim >Backend-Entwicklung >C++ >Wie verknüpfen Sie Boost-Bibliotheken mithilfe von CMake einfach mit Ihrem C-Projekt?

Wie verknüpfen Sie Boost-Bibliotheken mithilfe von CMake einfach mit Ihrem C-Projekt?

DDD
DDDOriginal
2024-12-05 07:23:10722Durchsuche

How to Easily Link Boost Libraries to Your C   Project Using CMake?

So verknüpfen Sie ganz einfach ein C-Programm mit Boost mithilfe von CMake

Das Verknüpfen Ihres C-Programms mit der Boost-Bibliothek kann insbesondere eine entmutigende Aufgabe sein auf Ubuntu. CMake bietet jedoch eine unkomplizierte Lösung, um diesen Prozess zu vereinfachen.

Das Problem

Beim Versuch, Ihr Programm zu verknüpfen, kann ein Fehler wie der folgende auftreten:

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

Dieser Fehler weist darauf hin, dass Ihr Programm die erforderlichen Boost-Header nicht finden kann.

Die Lösung

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

target_link_libraries(
my_target_file
${Boost_PROGRAM_OPTIONS_LIBRARY}
)

Dieser CMake-Befehl verknüpft Ihre Zieldatei mit der entsprechenden Boost-Bibliothek.

FindBoost.cmake

Alternativ können Sie das FindBoost.cmake-Modul von CMake verwenden, um und automatisch zu finden Integrieren Sie Boost in Ihr Projekt:

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

Dokumentation

Für detailliertere Informationen und Beispiele:

  • [Offizielle Boost-Dokumentation für FindBoost.cmake](https://cmake.org/Wiki/Boost)
  • [FindBoost.cmake源码](https://github.com/Kitware/CMake/blob/master/Modules/FindBoost. cmake)

Das obige ist der detaillierte Inhalt vonWie verknüpfen Sie Boost-Bibliotheken mithilfe von CMake einfach mit Ihrem C-Projekt?. 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