Linking-Fehler LNK2019 in MSVC, nicht aufgelöste Symbole mit dem Präfix __imp__, sollten jedoch aus der statischen Bibliothek stammen
Ich habe Probleme mit der Verknüpfung in MSVC für ein Projekt, das ich für g ++ geschrieben habe. Hier ist das Problem:
Ich erstelle libssh als statische Bibliothek als Teil meiner Anwendung und füge das Ziel in cmake mit @ hinz
add_library (ssh_static STATIC $ libssh_SRCS)
Libssh ist in C, also habe ich 'externes "C" {...}', das die Includes in meine c ++ - Quellen einfügt. Ich verknüpfe dann das Ziel ssh_static mit meiner ausführbaren Datei sshconnectiontest mit
target_link_libraries (sshconnectiontest ... ssh_static ...)
Dies alles funktioniert gut unter Linux mit gcc, aber jetzt in MSVC bekomme ich
error LNK2019: unresolved external symbol __imp__[function names here] referenced in [filename]
für jede libssh-Funktion, die ich benutze.
Irgendwelche Ideen, was schief geht? Ich habe irgendwo gelesen, dass das imp Präfix bedeutet, dass der Linker eine DLL-Datei erwartet, dies sollte jedoch nicht der Fall sein, da ssh_static im Aufruf von add_library als statische Bibliothek deklariert wird ...