libcurl 7.21.3 & VS 2008: unresolved external symbol __imp__curl_global_init



  • Hi!

    Ich bekomme es nicht hin, libcurl zu nutzen. Immer kommt dieser Linkerfehler. Dabei befolge ich sämtliche Anweisungen.
    Ich möchte es nicht als DLL sondern nur als statische Lib nutzen.

    Ich habe die .vcproj Datei geöffnet, konvertiert. Dann in den Eigenschaften auf Release geschaltet, Runtime Library auf "Multi-threaded (/MT)" gesetzt und in den Preprocessor Definitions _USEDLL entfernt und CURL_STATICLIB hinzugefügt.
    Dann Release Build gemacht. Alles OK.

    Testprojekt erstellt (Win32 Konsole) und dort auch /MT gesetzt:

    #pragma comment(lib, "ws2_32.lib")
    #pragma comment(lib, "winmm.lib")
    #pragma comment(lib, "wldap32.lib")
    #pragma comment(lib, "libcurl.lib")
    #include <curl/curl.h>
    
    int main()
    {
    	curl_global_init(CURL_GLOBAL_ALL);
    }
    
    error LNK2001: unresolved external symbol __imp__curl_global_init
    

    Ich fand nur einen Text vom Autor, in dem er darauf hinwies, dass CURL_STATICLIB definiert sein muss, da sonst __imp__ genutzt wird. Aber das habe ich doch definiert...

    😕



  • Bitte nach "Rund um die Programmierung" verschieben 🙄



  • Hallöle



  • Loader schrieb:

    Bitte nach "Rund um die Programmierung" verschieben 🙄

    Wieso, du bist eindeutig im richtigen Forum?!!



  • Naja, ob's wirklich die Schuld des Compilers ist...



  • Loader schrieb:

    Naja, ob's wirklich die Schuld des Compilers ist...

    Die Schuldfrage ist unerheblich, du hast ein Problem mit Komplieren bzw Linken.



  • Fixed, man muss CURL_STATICLIB auch in der Applikation definieren, nicht nur in der Lib... 🙄



  • ich habe es sowohl beim kompilieren der Libs als auch in meinem Projekt definiert. Gleiches Ergebnis
    Ich habe auch überprüft dass die Codegenerierung auf Multithreaded steht, und nicht auf DLL
    Und ich habe mir fertige Binaries runtergeladen ==> gleiches Ergebnis


Anmelden zum Antworten