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
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)
編集:ターゲットが静的ライブラリであるかどうかコメントを確認します