Пользовательский каталог для вывода библиотеки 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: Нет такого файла или каталога make [2]: * [lib../out/JE3D.a] Ошибка 1 make [1]: * [CMakeFiles/../out/JE3D.dir/all] Ошибка 2 make: *** [all] Ошибка 2

Ответы

Ответ 1

Свойство LIBRARY_OUTPUT_DIRECTORY target указывает каталог, в котором будут создаваться целевые файлы библиотеки.

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

Если все библиотеки находятся в одном каталоге, мне удобнее установить переменную CMAKE_LIBRARY_OUTPUT_DIRECTORY, которая используется для инициализации свойства LIBRARY_OUTPUT_DIRECTORY при создании цели.

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

Изменить: Проверить комментарии, если ваша цель - статическая библиотека