CMAKE - цель makefile для библиотеки - PullRequest
0 голосов
/ 12 апреля 2019

В настоящее время я изменяю систему сборки моего проекта с make-файлов gnu на cmake (которые генерируют make-файлы).

Мой проект создает несколько библиотек (.lib) и несколько исполняемых файлов (.exe).

В настоящее время я генерирую make-файлы, используя следующую команду:

cmake -G "Unix Makefiles" .. -DCMAKE_BUILD_TYPE=Debug

Сгенерированные make-файлы содержат цель all, а также цель для каждого исполняемого файла (скомпилированного как таковое с помощью директивы add_executable cmake), поэтому я могу скомпилировать подмножество проекта (что экономит много времени). ): make executable_1; make executable_2 и т. Д.

Однако для библиотек нет цели (скомпилированной как таковая с помощью директивы add_library cmake), поэтому я не могу, например, make library_1. Я хочу сделать это, потому что это сэкономит много времени.

Я попытался добавить фиктивный исполняемый файл в cmake библиотеки и связать библиотеку с этим исполняемым файлом (который содержит только основную часть без фактического использования кода library_1).

add_library(library_1 test.cpp)
add_executable(dummy_exe dummy_main.cpp)
target_link_library(dummy_exe library_1)

Он добавляет цель для dummy_exe, но не создает библиотеку, потому что на самом деле ему не нужно связывать какой-либо код library_1.

В любом случае, это была попытка обхода, и я все-таки предпочел бы просто позвонить make library_1. Есть ли способ добавить цель make-файла для библиотеки с помощью cmake?

1 Ответ

0 голосов
/ 19 апреля 2019

Как ответили w-m и Фред, CMAKE действительно создает цель для библиотек в Makefile.

Я пытался собрать библиотеку с именем подпроекта библиотеки cmake вместо имени библиотеки.

make help действительно очень помог найти эту проблему, поскольку в ней перечислено все, что можно построить.

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