web-dev-qa-db-ja.com

CMakeライブラリ出力用のカスタムディレクトリ

CMakeでは、ライブラリのみを../out/libraryに出力できないようです。 ../out/libraryパスを実行すると、ライブラリがリンクされているかのように、ライブラリが見つからないことがわかります。

add_library(../out/JE3D ../source/CDeviceLayerSDL.cpp)

さらにファイルがありますが、スペースを節約しています。そうすると、このエラーが発生します。

CXX静的ライブラリのリンクlib ../ out/JE3D.a/usr/bin/ar:lib ../ out/JE3D.a:No such file or directory make [2]:* [lib ../ out/JE3D.a]エラー1 make [1]:* [CMakeFiles /../ out/JE3D.dir/all]エラー2 make:*** [all]エラー2

23
Jookia

LIBRARY_OUTPUT_DIRECTORY targetプロパティは、ライブラリターゲットファイルがビルドされるディレクトリを指定します。

set_target_properties(JE3D PROPERTIES
         LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/library)

すべてのライブラリが1つのディレクトリにある場合、CMAKE_LIBRARY_OUTPUT_DIRECTORY変数を設定する方が便利です。これは、ターゲットの作成時にLIBRARY_OUTPUT_DIRECTORYプロパティを初期化するために使用されます。

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/library)

編集:ターゲットが静的ライブラリであるかどうかコメントを確認します

39
Chin Huang