[解決済み] cmakeでライブラリパスを追加するにはどうしたらいいですか?
2022-03-17 17:40:31
質問
私のプロジェクトには2つのフォルダ "inc"と "lib" があり、それぞれヘッダーと静的ライブラリが含まれています。cmakeに、これらの2つのディレクトリをそれぞれインクルードとリンクに使用するように指示するにはどうすればよいですか?
解決方法は?
一番簡単な方法は
include_directories(${CMAKE_SOURCE_DIR}/inc)
link_directories(${CMAKE_SOURCE_DIR}/lib)
add_executable(foo ${FOO_SRCS})
target_link_libraries(foo bar) # libbar.so is found in ${CMAKE_SOURCE_DIR}/lib
を追加しない現代のCMakeバージョン。
-I and -L
フラグは、インポートライブラリを使用することになります。
add_library(bar SHARED IMPORTED) # or STATIC instead of SHARED
set_target_properties(bar PROPERTIES
IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/lib/libbar.so"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include/libbar"
)
set(FOO_SRCS "foo.cpp")
add_executable(foo ${FOO_SRCS})
target_link_libraries(foo bar) # also adds the required include path
を設定すると
INTERFACE_INCLUDE_DIRECTORIES
でパスが追加されない場合、CMake の古いバージョンでは
target_include_directories(bar PUBLIC /path/to/include)
. しかし、この
は機能しなくなりました。
CMake 3.6 以降のバージョンで使用可能です。
関連
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み】CMakeでインクルードディレクトリを正しく追加する方法
-
[解決済み】UbuntuにOpenSSLライブラリをインストールする方法を教えてください。
-
[解決済み] CMakeで、コンパイラがClangであるかどうかをテストするにはどうすればよいですか?
-
[解決済み] CMAKEで-fPICコンパイラーオプションを追加する慣用的な方法は何ですか?
-
[解決済み] CMAKEのOS別説明書:How to?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)