Почему мой DLL-файл и соответствующий ему LIB-файл имеют разные имена? - PullRequest
0 голосов
/ 04 октября 2019

У меня есть файл CMakeLists.txt, и, поскольку я хочу добавить префикс сгенерированного файла DLL и LIB к «lib» (для согласования между платформами), у меня есть следующее утверждение:

if (MSVC)
    # Here, PROJECT_NAME -> "MyLibrary"
    set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "lib")
endif()

Когда яиспользуйте этот файл для построения моей библиотеки, DLL-файл получает префикс, добавленный к нему (например, libMyLibrary.dll), но файл LIB не имеет префикса (например, MyLibrary.lib). Кто-нибудь может придумать причину этой проблемы?

Я предположил, что вызов set_target_properties() устанавливает свойства для файлов DLL и LIB. Спасибо!

1 Ответ

1 голос
/ 04 октября 2019

target - это только выходной файл (.dll), вам также нужно установить ARCHIVE_OUTPUT_NAME

set_target_properties(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_NAME "lib${PROJECT_NAME}")

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