2010-11-14 17 views
26

का उपयोग कर मैं जानता हूँ कि इस सवाल प्रोग्रामिंग है, लेकिन मैं सिर्फ मैं गलत क्या कर रहा पता लगाने की कोशिश कर रहा हूँ निराश ..अनसुलझे प्रतीक जब एक कार्यक्रम को जोड़ने libcurl

मैं दृश्य स्टूडियो 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; 
} 
+0

सुनिश्चित करें कि आपने लिंक किए गए पीडीएफ से 4.3.2 और 4.3.3 कदम उठाए हैं। आपको एक लिंकर त्रुटि मिल रही है, जिसका अर्थ है कि यह फ़ाइल 'libcurl.lib' से लिंक नहीं कर रहा है। –

+0

धन्यवाद जेसी। मैं चरणों को धीमा कर दूंगा और देख सकता हूं कि यह क्यों जुड़ा हुआ नहीं है। सहायता के लिए धन्यवाद! – Kyle

उत्तर

2

ऐसा लगता है कि पुस्तकालयों को सफलतापूर्वक लिंक नहीं किया जा रहा है। सुनिश्चित करें कि लाइब्रेरी निर्देशिका libcurl dll के पूर्ण पथ को शामिल करने के लिए सेट है। यह भी सुनिश्चित करें कि यह पुस्तकालय वास्तव में आपके प्रोजेक्ट में जोड़ा गया है।

CURL_STATICLIB

अपने प्रोजेक्ट के विन्यास का निर्माण करने की:

+2

आपको libcurl.lib, curllib.lib –

76

मैं libcurl के स्थिर संस्करण का उपयोग कर रहा है, और ठीक से इसके खिलाफ अपना कार्यक्रम से जोड़ने के लिए, मैं परिभाषा जोड़ने के लिए किया था।

+13

शामिल करना होगा, यह शायद सामान्य समस्याओं में से एक है: यदि आप एक स्टेटिक लाइब्रेरी के रूप में libcurl का उपयोग कर रहे हैं तो आपको केवल कर्ल प्रोजेक्ट में CURL_STATICLIB को परिभाषित करने की आवश्यकता नहीं है, बल्कि उस प्रोजेक्ट में भी जहां आप इसका उपयोग करना चाहते हैं। – PeterK

+0

एक और दिलचस्प बिंदु जो मैंने अभी मुलाकात की है: आप इसे मुख्य परियोजना में परिभाषित कर सकते हैं और आप जिस अन्य वीसीप्रोजेज का उपयोग कर रहे हैं, उसमें उल्लेख करना भूल गए हैं। –

+3

आपको बहुत बहुत धन्यवाद। वीसी ++ परियोजना सेटिंग्स पर जाएं सी ++ | प्रीप्रोसेसर और प्रीप्रोसेसर परिभाषाओं के लिए CURL_STATICLIB जोड़ें और यह –

3

मैं एक समान मुद्दे में भाग गया - पाया कि मैं libcurl.lib के 64-बिट स्थान का संदर्भ दे रहा था। लिंक निर्देशिका को 32-बिट स्थान पर बदल दिया गया है और परियोजना पूरी तरह संकलित है।

12

CURL_STATICLIB को परिभाषित करने, मेरे लिए इसके अलावा यह भी निम्न निर्भरता (libcurl.lib या libcurld.lib सहित) से जोड़ने के लिए जरूरी हो गया था: कई विचार और विन्यास के बाद

  • Ws2_32.lib
  • Wldap32.lib
+0

के लिए सिर्फ Google के लिए खतरनाक है 'CURL_STATICLIB' को परिभाषित करने से मेरा बेकन बचाया गया है! धन्यवाद! – T4cC0re

0

, मैं इस समस्या को हल करने में हल:

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

जहां libcurl_a.lib कर्ल lib फ़ाइल का नाम है और lib वह फ़ोल्डर है जिसमें यह शामिल है।

संबंधित मुद्दे