CMake: связать созданную библиотеку? - PullRequest
0 голосов
/ 19 августа 2011

У меня огромный проект с двумя основными каталогами: - /myproject/src - /myproject/app

Стратегия такова, что src создает библиотеки в каталоге /myproject/lib, а затем приложения используют эти библиотеки для создания исполняемых файлов в каталоге /myproject/bin.

Но проблема в следующем. Классическая стратегия связывания библиотек заключается в использовании FIND_LIBRARY (). Но как связать библиотеку, которая еще не создана?

Спасибо.

1 Ответ

3 голосов
/ 19 августа 2011

find_library () немного больше, чем следует из названия, она не только находит путь к (предустановленной) библиотеке, но также часто подготавливает множество переменных и функций. Также find_library () работает только с определенными библиотечными модулями, которые находятся в каталоге cmake / share.

Когда вы создаете свою собственную библиотеку, вы должны добавить ее в CMakeLists.txt с помощью команды add_library (), которая работает точно так же, как команда add_executable ().

Когда вы это сделаете, вы можете добавить библиотеку в исполняемый файл с помощью команды target_link_libraries ().

Подводя итог:

add_library(myLib libsourceA.c libSourceB.c)

add_executable(myProgram prgsourceA.c prgsourceB.c)
target_link_libraries(myProgram myLib)

На самом деле вам не нужно знать или указывать точное местоположение файла библиотеки, cmake справится с этим за вас.

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