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; возможно вы могли бы использовать это?

Другие вопросы по тегам