2009-05-15 8 views
10

मैं स्थिर curlpp लाइब्रेरी का उपयोग कर VS2008 में एक C++ कंसोल ऐप बनाने की कोशिश कर रहा हूं।बनाम 2008 के साथ CurlPP का उपयोग

#include "stdafx.h" 


#include <curlpp/curlpp.hpp> 
#include <curlpp/Easy.hpp> 
#include <curlpp/Options.hpp> 


using namespace curlpp::options; 

int main(int, char **) 
{ 
    try 
    { 

    // Our request to be sent. 
    curlpp::Easy myRequest; 

    // Set the URL. 
    myRequest.setOpt<Url>("http://example.com"); 

    // Send request and get a result. 
    // By default the result goes to standard output. 
    myRequest.perform(); 
    } 

    catch(curlpp::RuntimeError & e) 
    { 
    std::cout << e.what() << std::endl; 
    } 

    catch(curlpp::LogicError & e) 
    { 
    std::cout << e.what() << std::endl; 
    } 

    return 0; 
} 

मैं स्रोत डाउनलोड किया है और मेरी शामिल पथ स्रोत की ओर इशारा किया फ़ाइलों में शामिल हैं, लेकिन जब मैं कोशिश करते हैं और संकलन, मैं बहुत सारी मिलता है है: कोड - - जो curlpp उदाहरण 00 है इस प्रकार है प्रकार के इनलाइन फ़ाइलों में त्रुटियों:

dllimport समारोह की परिभाषा VS2008 साथ

निश्चित रूप से बहुत सारे लोग जो इस्तेमाल किया है curlpp अनुमति नहीं है और मैं कुछ स्पष्ट याद कर रहा हूँ।

+0

क्या कोई इसे curlpp टैग से टैग कर सकता है, कृपया? –

उत्तर

0

आमतौर पर लोगों को लाइब्रेरी के "निर्यात" मैक्रो परिभाषित के साथ लाइब्रेरी की शीर्षलेख फ़ाइल को शामिल करने का प्रयास करते समय यह त्रुटि मिलती है। curlpp कुछ मैक्रो, आमतौर पर कोड है कि इस तरह दिखता है में पाया होना चाहिए:

#ifdef NATIVEDLL_EXPORTS 
#define NATIVEDLL_API extern "C" __declspec(dllexport) 
#else 
#define NATIVEDLL_API __declspec(dllimport) 
#endif 

और आप NATIVEDLL_EXPORTS पूर्वप्रक्रमक में परिभाषित किया गया है। इस परिभाषा को हटा दें। ppcurl को "NATIVEDLL_EXPORTS" नहीं कहा जाएगा, इसका अपना नाम कुछ होगा।

2

पर एक नजर डालें \ शामिल \ curlpp \ आंतरिक \ buildconfig.h फ़ाइल जहां निम्न मैक्रो वहाँ परिभाषित कर रहे हैं

CURLPPAPI 
CURLPP_INCLUDE_TEMPLATE_DEFINITIONS 
CURLPP_TEMPLATE_EXPLICIT_INSTANTIATION 

इन तीन मैक्रो के मूल्यों पर आधारित

CURLPP_STATICLIB 
BUILDING_CURLPP 
CURLPP_SELF_CONTAINED 

पढ़ें उनके बारे में README.win32 फ़ाइल में और उसके अनुसार तीन मैक्रोज़ ऊपर परिभाषित करें।
यदि आपको अभी भी कोई समस्या है तो हमें बताएं।

वैसे; आज मैं curlpp-current.2009.05.21

0

पायोत्र के जवाब के अलावा डाउनलोड करने के लिए curlpp के वर्तमान संस्करण डाल: भूल नहीं ही libcurl तदनुसार निर्माण करने के लिए - गतिशील या स्थिर और CURLPP_STATICLIB साथ CURL_STATICLIB परिभाषित करते हैं (जाहिर है, स्थिर संस्करण का निर्माण करते हैं)। और एक sidenote पर: मुझे बिल्कुल CURLPP पसंद नहीं आया, यह समझना मुश्किल था कि मुझे यह करने के लिए कैसे करना है। आप अपने खुद के रैपर के साथ शुद्ध libcurl का उपयोग करना चाह सकते हैं।

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