ホームページ >バックエンド開発 >C++ >Ubuntu で CMake を使用して C プログラムを Boost にリンクする方法?

Ubuntu で CMake を使用して C プログラムを Boost にリンクする方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 10:08:22825ブラウズ

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

Ubuntu で CMake を使用して C プログラムを Boost にリンクする

問題

Ubuntu で C プログラムを Boost ライブラリにリンクしようとすると、次のような問題が発生しますエラーが発生する可能性があります:

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

このエラーは、必要なときに発生します。 Boost ライブラリがプログラムに正しくリンクされていません。

CMake を使用した解決策

この問題を解決するには、CMake の find_package 関数を利用して Boost ライブラリを見つけることが重要です。通常、ほとんどの CMake インストールには FindBoost.cmake という名前のスクリプトが含まれています。

このスクリプトは、Boost_INCLUDE_DIR を使用して Boost ヘッダー ファイルをインクルードし、Boost_LIBRARIES を使用して CMake プロジェクトに Boost ライブラリにリンクする方法を説明します。これを実現する方法の例を次に示します。

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

追加情報

  • FindBoost.cmake の詳細については、Boost の公式ドキュメントを参照してください: [CMake docs](https) ://cmake.org/Wiki/FindBoost)
  • FindBoost.cmake のソース コードにアクセスするには、次の場所にアクセスしてください。 GitHub リポジトリ: [FindBoost.cmake](https://github.com/Kitware/CMake/blob/master/Modules/FindBoost.cmake)

以上がUbuntu で CMake を使用して C プログラムを Boost にリンクする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。