CMake импортирует поведение библиотеки
У меня странная проблема с CMake.
Я импортирую Curl в свой проект, поэтому я пишу для вас упрощенную сводку моего файла CMakeLists.txt.
ADD_LIBRARY (libcurl SHARED IMPORTED)
SET_PROPERTY (TARGET libcurl PROPERTY IMPORTED_LOCATION../lib/libcurl.lib)
Когда я запускаю CMake, он генерирует файлы проекта для MS VC++ (также для Linux). Затем в файле проекта я нахожу неправильную ссылку на библиотеку curl (libcurl-NOTFOUND)!
Если я изменю свой код на статический импорт:
ADD_LIBRARY (libcurl STATIC IMPORTED)
SET_PROPERTY (TARGET libcurl PROPERTY IMPORTED_LOCATION../lib/libcurl.lib)
Я нахожу правильную ссылку на../lib/libcurl.lib.
У вас есть идеи, почему это происходит?
Большое спасибо!
1 ответ
Для общей библиотеки IMPORTED_LOCATION
должен указывать на DLL, а не на импорт lib. Смотрите документацию. Вы также можете установить свойство IMPORTED_IMPLIB.
Кстати, CMake также имеет пакет поиска для Curl; возможно вы могли бы использовать это?