40 Stimmen

Unaufgelöste Symbole beim Linken eines Programms mit libcurl

Ich weiß, dies ist Programmierung Fragen, aber ich bin nur frustriert versuchen, herauszufinden, was ich falsch mache

Ich verwende Visual Studio 2010 und folgte alle Schritte hier: http://curl.haxx.se/libcurl/c/visual_studio.pdf

Wenn ich versuche, meine Lösung zu kompilieren, erhalte ich immer wieder diesen Fehler:

1>------ Build started: Project: LibCurl, Configuration: Debug Win32 ------
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function _main
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function _main
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function _main
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function _main
1>C:\Users\Kyle\Documents\Visual Studio 2010\libcurl\VisualStudio\LibCurl\Debug\LibCurl.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Quelle:

// LibCurl.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
    res = curl_easy_perform(curl);

    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  return 0;
}

4voto

tagoma Punkte 3610

Ich hatte das gleiche Problem. Ich habe geschrieben, wie ich es endlich geschafft habe, die CurlLib funktioniert, hier: http://quantcorner.wordpress.com/2012/04/08/using-libcurl-with-visual-c-2010/ wenn Sie es sich ansehen möchten. Viel Glück!

2voto

Zsolti Punkte 1493

Nach vielen Ideen und Konfigurationen habe ich das Problem gelöst, indem ich dies hinzugefügt habe:

#pragma comment(lib, "lib/libcurl_a.lib")

wobei libcurl_a.lib ist der Name der Curl-Lib-Datei und lib ist der Ordner, der sie enthält.

1voto

Rumák Punkte 85

Ich hatte den gleichen Fehler, das Problem, das ich hatte, war, dass ich cURL nach cette SO Antwort, die nicht funktioniert, wenn Sie /MT als Laufzeitbibliotheksoption wünschen.

Um cURL in Bezug auf /MT und /MTD zu bauen, müssen Sie auch Set RTLIBCFG=static bevor sie tatsächlich mit dem nmake Befehl in derselben Konsole. Der vollständige Prozess der Erstellung von cURL auf diese Weise kann gefunden werden aquí .

Bearbeiten: Für den Fall, dass die URL nicht mehr funktioniert, werde ich die Anleitung auch hier einfügen:

  • Laden Sie den CUrl-Quellcode herunter und entpacken Sie ihn in ein temporäres Verzeichnis. http://curl.haxx.se/download.html In diesem Tutorium werden wir curl-7.37.0 verwenden.
  • Öffnen Sie die "Visual Studio-Eingabeaufforderung (2010)".
  • Navigieren Sie zum Ordner Winbuilds. \curl -7.37.0 \winbuild.
  • Tipo Set RTLIBCFG=static in die Eingabeaufforderung ein und drücken Sie die Eingabetaste. Dadurch wird der Compiler so eingestellt, dass er für /MT und /MTd erstellt wird.
  • Tipo nmake /f MakeFile.vc mode=static DEBUG=yes um die Debug-Version zu erstellen oder
  • Tipo nmake /f MakeFile.vc mode=static DEBUG=no um die Release-Versionen zu erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X