Неразрешенные символы при связывании программы с помощью libcurl

Я знаю, что это вопросы программирования, но я просто расстроен, пытаясь понять, что я делаю неправильно..

Я использую visual studio 2010 и выполнил все шаги здесь:http://curl.haxx.se/libcurl/c/visual_studio.pdf

когда я пытаюсь скомпилировать я получаю эту ошибку:

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:UsersKyleDocumentsVisual Studio 2010libcurlVisualStudioLibCurlDebugLibCurl.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

источник:

// 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;
}

6 ответов


похоже, что библиотеки не связаны. Убедитесь,что в каталоге библиотеки указан полный путь к библиотеке libcurl. Также убедитесь, что эта библиотека добавляется в ваш проект.


Я использовал статическую версию libcurl, и чтобы правильно связать мою программу с ней, мне пришлось добавить определение:

CURL_STATICLIB

для создания конфигурации моего проекта.


Помимо определения CURL_STATICLIB, для меня также было необходимо связать следующие зависимости (включая libcurl.lib или libcurld.lib):

  • Ws2_32.lib
  • Wldap32.lib

У меня была та же проблема. Я написал, как я, наконец, смог сделать CurlLib строительство, здесь: http://quantcorner.wordpress.com/2012/04/08/using-libcurl-with-visual-c-2010/ Если вы хотите посмотреть. Удачи!


Я столкнулся с аналогичной проблемой-обнаружил, что я ссылаюсь на 64-разрядное местоположение libcurl.движение за освобождение. Изменил каталог ссылок на 32-разрядное расположение, и проект скомпилирован отлично.


после многих идей и конфигураций, я решил проблему добавив Это:

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

здесь libcurl_a.lib - это имя файла curl lib и lib - Это папка, которая содержит его.