Подтвердить что ты не робот

Неразрешенные символы при связывании программы с использованием 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:\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 ==========

Источник:

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

Ответ 1

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

Ответ 2

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

CURL_STATICLIB

чтобы построить конфигурацию моего проекта.

Ответ 3

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

  • Ws2_32.lib
  • Wldap32.lib

Ответ 5

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

Ответ 6

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

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

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