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
Lepaskan: 2024-12-03 10:08:22
asal
970 orang telah melayarinya

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'
Salin selepas log masuk

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})
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan