Пользовательский каталог для вывода библиотеки 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)
Изменить: Проверить комментарии, если ваша цель - статическая библиотека