ホームページ > バックエンド開発 > C++ > 正しいパス指定にもかかわらず、CMake の「link_directories」がライブラリを見つけられないのはなぜですか?

正しいパス指定にもかかわらず、CMake の「link_directories」がライブラリを見つけられないのはなぜですか?

Linda Hamilton
リリース: 2024-12-10 20:31:15
オリジナル
346 人が閲覧しました

Why Does CMake's `link_directories` Fail to Find My Library Despite Correct Path Specification?

CMake: Link_Directories がライブラリの検索に失敗する

問題:

CMake ベースsrc と build ディレクトリを含むプロジェクトでは、「protobuf」という名前のライブラリは使用できません

詳細:

  • src/CMakeLists.txt には、link_directories が「/usr/lib/」を指す CMake 構成が含まれています。 x86_64-linux-gnu」の場所libprotobuf.so.
  • CMakeLists.txt には、add_executable および target_link_libraries コマンドも含まれています。
  • main.cpp は libprotobuf.so から関数を参照しますが、リンク時に未定義の参照エラーが発生します。
  • で libprotobuf.so へのフルパスを使用します。 link_directories の代わりに target_link_libraries コマンドを実行すると、リンクが成功します。

解決策:

link_directories コマンドが、CMakeList の target_link_libraries だけでなく add_executable よりも前にあることを確認します。 txt ファイル。

以上が正しいパス指定にもかかわらず、CMake の「link_directories」がライブラリを見つけられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート