Clion:プロジェクトにビルド済みの静的ライブラリを追加または(使用)する方法は?
プロジェクトをビルド済みの静的ライブラリにリンクする方法について質問している可能性があります。もしそうなら、あなたは target_link_libraries
を呼び出すことによってこのようにすることができます。
myProj
というプロジェクトとビルド済みのライブラリmyLib.lib
を想定すると、次のように実行できます。
target_link_libraries(myProj myLib)
CLionとCMakeはまったく初めてだったので、この作品を作るのは非常に困難でした。
私のシナリオでは、すべてのプロジェクトでコースライブラリを使用する必要があるクラスを受講していました。
libClassLibrary.a
というライブラリがあると仮定して、プロジェクトルートのCMakeLists.txt
で次の手順を実行します。
まず、ライブラリの場所を見つけます。
find_library(LIB_TO_INCLUDE ClassLibrary /path/to/your/library)
LIB_TO_INCLUDE
には、ライブラリが見つかった場合のライブラリの場所が含まれます。ソリューションを他のシステムに移植できるようにしたい場合は、パスをハードコーディングすると問題が発生する可能性があることに注意してください。ライブラリが複数の場所に存在する可能性がある場合は、スペースで区切って検索パスを追加できます。典型的な例は、/usr/bin /usr/local/bin
などの一般的なインストール場所を含めることです。
次に、ヘッダーファイル(該当する場合)がヘッダー検索パスに含まれていることを確認します。
find_path (LIB_INCLUDES ClassLibrary.h /path/to/header/files)
繰り返しますが、ヘッダーを複数の場所にロードできる場合は、複数の検索パスを含めます。複数のヘッダーファイルがある場合は、それらすべてをインクルードする必要があります。
ここで、include_directories
コマンドを使用してディレクトリを含めます。
include_directories(${LIB_INCLUDES})
上記は、LIB_INCLUDES
またはあなたがそれを呼び出すことに決めたものに含まれるすべてのディレクトリを検索するようにビルドシステムに指示します。
最後に、実行可能ファイルを追加し、target_link_libraries
コマンドを使用してlibClassLibrary.a
をリンクします。
add_executable(MyExecutable main.cpp)
target_link_libraries(MyExecutable ${LIB_TO_INCLUDE})
それで全部です。プロジェクトオーガナイザーウィンドウの[外部ライブラリ]> [ヘッダー検索パス]の下に、ヘッダーファイルを含むディレクトリが表示されます。
PS-本Mastering CMake KenMartinとBillHoffmannによる貴重なリソースです。
あなたの質問はCLionとは関係ありません、それは純粋なCMakeです。プロジェクトからCMakeLists.txtを変更し、add_library
を使用します。 CMakeドキュメント が役立つかもしれません。
私は質問を誤解しました、target_link_library
はおそらく質問への答えです。