Ошибка связывания LNK2019 в MSVC, неразрешенные символы с префиксом __imp__, но должны быть из статической библиотеки

Я сталкиваюсь с проблемами связывания в MSVC для проекта, который я написал для g ++. Вот проблема:

Я создаю libssh как статическую библиотеку как часть моего приложения, добавляя цель в cmake с помощью

add_library (ssh_static STATIC $ libssh_SRCS)

Libssh находится в C, поэтому у меня есть 'extern "C" {...}', включающий включения в мои исходные тексты на c ++. Затем я связываю цель ssh_static с моим исполняемым файлом, sshconnectiontest, с помощью

target_link_libraries (sshconnectiontest ... ssh_static ...)

Это все прекрасно работает в Linux с GCC, но теперь в MSVC я получаю

error LNK2019: unresolved external symbol __imp__[function names here] referenced in [filename]

для каждой функции libssh, которую я использую.

Есть идеи, что не так? Я где-то читал, чточертенок Префикс означает, что компоновщик ожидает связать .dll, но это не должно иметь место, так как ssh_static объявлен статической библиотекой в ​​вызове add_library ...

Ответы на вопрос(4)

Ваш ответ на вопрос