Пользовательский каталог для вывода библиотеки CMake - PullRequest
20 голосов
/ 18 сентября 2010

В 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: *** [все] Ошибка 2

1 Ответ

34 голосов
/ 19 сентября 2010

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

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)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...