Неразрешенные символы при компоновке программы с использованием libcurl - PullRequest
30 голосов
/ 14 ноября 2010

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

Я использую 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;
}

Ответы [ 6 ]

83 голосов
/ 23 марта 2011

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

CURL_STATICLIB

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

20 голосов
/ 24 января 2016

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

  • Ws2_32.lib
  • Wldap32.lib
4 голосов
/ 20 декабря 2014

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

4 голосов
/ 09 апреля 2012

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

3 голосов
/ 14 ноября 2010

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

0 голосов
/ 16 июня 2017

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

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

где libcurl_a.lib - имя файла библиотеки curl, а lib - папка, в которой он находится.

...