Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memautkan Program C dengan Boost Menggunakan CMake pada Ubuntu?

Bagaimana untuk Memautkan Program C dengan Boost Menggunakan CMake pada Ubuntu?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 10:08:22878semak imbas

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

Memautkan program C dengan Boost menggunakan CMake pada Ubuntu

Isu

Apabila cuba memautkan program C dengan perpustakaan Boost pada Ubuntu, perkara berikut ralat mungkin dihadapi:

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

Ralat ini timbul apabila perpustakaan Boost yang diperlukan tidak dipautkan dengan betul program.

Penyelesaian menggunakan CMake

Untuk menyelesaikan isu ini, adalah penting untuk memanfaatkan fungsi find_package CMake untuk mencari perpustakaan Boost. Biasanya, skrip bernama FindBoost.cmake disertakan dengan kebanyakan pemasangan CMake.

Skrip ini akan memberikan arahan tentang cara menggunakan Boost_INCLUDE_DIR untuk memasukkan fail pengepala Boost dan Boost_LIBRARIES untuk dipautkan ke perpustakaan Boost dalam projek CMake anda. Berikut ialah contoh cara untuk mencapai ini:

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

Maklumat Tambahan

  • Untuk maklumat lanjut mengenai FindBoost.cmake, rujuk dokumentasi Boost rasmi: [CMake docs](https ://cmake.org/Wiki/FindBoost)
  • Untuk mengakses kod sumber FindBoost.cmake, lawati GitHub repositori: [FindBoost.cmake](https://github.com/Kitware/CMake/blob/master/Modules/FindBoost.cmake)

Atas ialah kandungan terperinci Bagaimana untuk Memautkan Program C dengan Boost Menggunakan CMake pada Ubuntu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn