Используйте target_link_libraries, чтобы библиотеки не начинались с lib * - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь связать мою программу (привет) со специальной библиотекой (/path/abc.so), которая не начинается с 'lib'.

Вот мой CMakeLists.txt

add_executables(hello hello.c)

target_link_libraries(hello /path/abc.so)

Работает нормально, но есть ли другой способ избежать этого полного пути (/path/abc.so)?Я не хочу делать символическую ссылку на abc.so или изменять сам abc.so.

1 Ответ

0 голосов
/ 13 декабря 2018

Вероятно, ваш лучший вариант - не связывать напрямую библиотеку, а использовать импортированные цели: ваша цель библиотеки может быть

add_library(ABC SHARED IMPORTED)
set_target_properties(ABC PROPERTIES
            IMPORTED_LOCATION path/to/library/abc.so
            INTERFACE_INCLUDE_DIRECTORIES path/to/include
            )

Затем вы можете связать ее как цель:

target_link_libraries(hello ABC)

Следующим шагом будет наличие модуля поиска библиотеки или модуля конфигурации, чтобы вы не определяли полный путь в вашем CMakeLists.txt, а искали библиотеку или просто включали файл .cmake со всемипути.

Посмотрите ЗДЕСЬ и ЗДЕСЬ

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