c++ विजुअल स्टूडियो 2013 के साथ काम करने के लिए LibCurl प्राप्त करना




visual-c++ dll (8)

विजुअल स्टूडियो 2017 के लिए, link में link गए कदम मेरे लिए काम करते थे। यदि लिंक समाप्त हो जाता है या विशेष रूप से उन लोगों के लिए जो गिटहब से क्लोनिंग के बजाय libcurl ज़िप फ़ाइल डाउनलोड करते हैं, तो मैं यहां दिए गए चरणों को नोट कर दूंगा।

  1. “C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat” x64 साथ पर्यावरण चर सेट करें। यदि आदेश सफल होता है, तो आपको एक संदेश दिखाई देगा जो कहता है कि Environment initialized for 'x64'

  2. Libcurl https://curl.haxx.se/download.html से संपीड़ित libcurl फ़ाइल डाउनलोड और निकालें। मैंने .zip फ़ाइल का उपयोग किया।

  3. winbuild libcurl फ़ोल्डर के अंदर winbuild निर्देशिका में cd
  4. निर्माण nmake /f Makefile.vc mode=dll MACHINE=x64 बनाने के लिए। निर्माण विकल्पों के बारे में अधिक जानकारी के लिए, कृपया winbuild फ़ोल्डर में winbuild टेक्स्ट फ़ाइल देखें।
  5. संकलित फ़ाइलों को खोजने के लिए फ़ोल्डर बनाने में एक निर्देशिका स्तर और cd जाएं।

शुभकामनाएं!

मुझे विजुअल स्टूडियो 2013 के साथ काम करने के लिए LibCurl प्राप्त करने में परेशानी हो रही है। मैंने वर्तमान संस्करण (curl-7.33.0) डाउनलोड किया और इस साइट पर मिले निर्देशों का पालन करने का प्रयास किया: विजुअल 2010 के साथ LibCurl का उपयोग करना

लेकिन मुझे डाउनलोड किए गए फ़ोल्डर में curllib.lib नहीं मिल रहा है। और मुझे अभी भी त्रुटियां मिल रही हैं:

अधिक सहायता के लिए इंटरनेट खोज करने के बाद। अब मुझे ये त्रुटि संदेश मिलते हैं। Libcurl.lib से जोड़ने में कोई समस्या प्रतीत होती है?

यह वही है जो मैंने कॉन्फ़िगर किया है:

अंदर / lib मैं libcurl.lib और libcurl.dll है

अद्यतन करें

मैंने Win32 MSVC के लिए यह रिलीज डाउनलोड किया: http://curl.haxx.se/download.html#Win32 libcurl पुस्तकालयों को जोड़ने और सफलतापूर्वक संकलित करने के बाद, अब मुझे यह त्रुटि संदेश मिल रहा है:

 The application was unable to start correctly (0xc000007b). Click OK to close the application.

यहां नमूना कोड है जिसे मैं चलाने की कोशिश कर रहा हूं:

#include <iostream>
#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;
}

अंतिम अद्यतन

मुझे विश्वास है कि अब मुझे विजुअल स्टूडियो 2013 के साथ काम करने के लिए लिबकर्ल मिल गया है। दृढ़ता ftw! हालांकि, इन त्रुटि संदेशों को हल करने के लिए घंटों खर्च करने के बाद, मैं यह कहकर थोड़ा संकोच कर रहा हूं कि सब कुछ ठीक काम कर रहा है। यही कारण है कि मैं विजुअल स्टूडियो 2013 के साथ काम करने के लिए LibCurl प्राप्त करने के बारे में स्पष्ट और संक्षिप्त निर्देश प्राप्त करने के लिए इस प्रश्न पर एक बक्षीस डाल रहा हूं।

यह काम करने के लिए मैंने यही किया:

  1. सबसे पहले, यहां Win32 MSVC पैकेज डाउनलोड करें: http://curl.haxx.se/download.html#Win32 इन निर्देशों के लिए, मान लीजिए कि आपने C: \ LibCurl पर डाउनलोड किया है

  2. विजुअल स्टूडियो में एक नई परियोजना शुरू करें। प्रोजेक्ट पर जाएं | परियोजना गुण | वीसी ++ निर्देशिकाएं | निर्देशिकाएं शामिल करें डाउनलोड किए गए पैकेज के अंदर निर्देशिका शामिल करने के लिए पथ जोड़ें। (C: \ LibCurl \ शामिल हैं)

  3. इसके बाद, परियोजना पर जाएं | प्रोजेक्ट प्रॉपर्टीज | लिंकर | जनरल | अतिरिक्त लाइब्रेरी निर्देशिकाएं | Lib निर्देशिका में पथ जोड़ें। (जहां curllib.dll स्थित है)

  4. फिर, परियोजना पर जाएं | परियोजना गुण | लिंकर | इनपुट | अतिरिक्त निर्भरता | और curllib.lib जोड़ें

  5. अब यदि आप एक टेस्ट प्रोग्राम संकलित करते हैं, तो आपको शायद यह संदेश मिलेगा कि libsasl.dll गुम है। आपको इस फ़ाइल को डाउनलोड करने और इसे अपने निर्माण के समान निर्देशिका में रखना होगा। मैंने विंडोज़ के लिए ओपनएलडीएपी से libsasl.dll निकालने के लिए 7-ज़िप का उपयोग किया। विंडोज के लिए ओपनएलडीएपी

यह ऊपर से मेरे टेस्ट कोड का नतीजा है:


मुझे नवीनतम पैकेज का उपयोग करके वीसी ++ में काम करने का एक आसान तरीका मिला। मैं मूल रूप से विजुअल स्टूडियो में libcurl का उपयोग करने के चरणों का पालन किया। Libcurl और वीसी ++ निर्देश में बहुत पुराने हैं।

पहले डाउनलोड पेज पर ज़िप फ़ाइल डाउनलोड https://curl.haxx.se/download.html ज़िप पैकेज https://curl.haxx.se/download/curl-7.50.1.zip

परियोजनाओं पर जाएं-> विंडोज़ \ VC10 (या वीसी का आपका संस्करण) \ lib \ libcurl.sln, प्रोजेक्ट को वीसी ++ में खोलें।

डीएलएल रिलीज में परियोजना का निर्माण करें। डीएलएल डीबग मेरे वीसी ++ पर काम नहीं करता है।

\ Win32 \ VC10 \ DLL रिलीज बनाने के लिए जाएं, आप पिछले चरण से उत्पन्न lib और dll फ़ाइलों को पा सकते हैं।

शामिल करें और lib फ़ोल्डरों के साथ एक नया फ़ोल्डर बनाएं। Libcurb.dll और libcurb.lib को कॉपी करें जो भी DLL रिलीज फ़ोल्डर में नया \ lib है। कर्ल-7.50.1 \ में सबकुछ कॉपी करें \ नए फ़ोल्डर में शामिल करें।

सी ++ गुण -> कॉन्फ़िगरेशन गुण -> वीसी ++ निर्देशिकाएं, निर्देशिकाएं शामिल करने के लिए नया \ शामिल करें, लाइब्रेरी निर्देशिकाओं में नया \ lib; लिंकर में नया \ lib जोड़ें -> सामान्य -> ​​अतिरिक्त लाइब्रेरी निर्देशिकाएं, लिंकर में libcurl.lib जोड़ें -> इनपुट -> अतिरिक्त निर्भरता

ऐसा लगता है कि मुझे डीएलएल फ़ाइल को निष्पादन योग्य फ़ाइल के साथ एक ही फ़ोल्डर में रखना होगा।

यह काम करना चाहिए।


मैंने इसे वीएस2012 के साथ खरोंच से करने की कोशिश की (मेरे पास 2013 नहीं है) और यह पूरी तरह से काम करता है।

  • मैंने http://curl.haxx.se/latest.cgi?curl=win32-ssl-devel-msvc से संस्करण 7.1 9.3 डाउनलोड किया क्योंकि यह वीएस के लिए एकमात्र उपलब्ध संस्करण है।
  • मैंने निर्देशिका को शामिल किया है, कर्ल निर्देशिका नहीं, जैसा कि वह ट्यूटोरियल में कहता है।
  • मैंने बिना किसी समस्या के एक छोटी खिलौना परियोजना संकलित की।

तो, मुझे यकीन नहीं है कि आपकी समस्या क्या है, लेकिन:

  • सुनिश्चित करें कि आप सही संग्रह डाउनलोड करें।
  • अंतरिक्ष के बिना पथ पर curl फ़ोल्डर डालने का प्रयास करें।
  • यदि आप किसी ऐसे व्यक्ति को जानते हैं जो VS2012 या पुराने का उपयोग करता है, तो अपने कोड को उसी और lib के साथ आज़माएं और देखें कि यह काम करता है या नहीं।
  • अपने कोड का एक न्यूनतम कामकाजी उदाहरण पेस्ट करें ताकि मैं इसका परीक्षण कर सकूं।

कर्ल v7.37.0 स्रोत कोड डाउनलोड करें और प्रदान की गई विजुअल स्टूडियो प्रोजेक्ट फ़ाइलों का उपयोग करें।

मैंने पिछले कुछ हफ्तों में अपनी निजी परियोजना फाइलों को चमकाने में बिताया है, जो मूल वीसी 6 फाइलों पर आधारित थे, और उन्हें भंडार में जोड़ रहे थे।

.dsw / .dsp (VC6), .sln / .vcproj (VC7, VC7.1, VC8 और VC9 के साथ-साथ .sln / .vcxproj (VC10, VC11 और VC12) फ़ाइलें डीएलएल और स्टेटिक लाइब्रेरी दोनों के लिए प्रदान की जाती हैं Win32 और x64 कॉन्फ़िगरेशन दोनों में ओपनएसएसएल और विंडोज एसएसपीआई / एससीएचनल के लिए समर्थन।


इनमें से बहुत से निर्देश पुराने हैं क्योंकि वे curl के लिए win32-ssl-devel-msvc पैकेज की अनुशंसा करते हैं, जो अब मौजूद नहीं है

निम्नलिखित निर्देश आपको केवल libcurl का निर्माण करने की अनुमति देते हैं:

  • विजुअल स्टूडियो 2013
  • कर्ल जेनेरिक स्रोत टैरबॉल (कर्ल 7.44.0 पर परीक्षण)।

ए libcurl स्थिर पुस्तकालय बनाएँ

  1. नवीनतम कर्ल जेनेरिक स्रोत से डाउनलोड करें: http://curl.haxx.se/latest.cgi?curl=tar.gz
  2. स्रोत को स्थानीय निर्देशिका में निकालें (हम C:\libcurl का उपयोग करेंगे)
  3. एक कमांड प्रॉम्प्ट खोलें
  4. "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat" अपने वीसी पर्यावरण चर प्रारंभ करने के लिए (आवश्यकतानुसार अपनी वीएस 2013 स्थापना निर्देशिका समायोजित करें)
  5. cd C:\libcurl\winbuild
  6. nmake /f Makefile.vc mode=static VC=12
  7. निर्माण C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl में दिखाई देना चाहिए C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl

विजुअल स्टूडियो में libcurl के खिलाफ बी लिंक

  1. विजुअल स्टूडियो में, समाधान एक्सप्लोरर में अपनी प्रोजेक्ट पर राइट क्लिक करें, फिर "गुण" पर क्लिक करें
  2. कॉन्फ़िगरेशन गुण> सी / सी ++> सामान्य> अतिरिक्त निर्देशिकाएं शामिल करें: C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include जोड़ें C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include
  3. कॉन्फ़िगरेशन गुण> सी / सी ++> प्रीप्रोसेसर> प्रीप्रोसेसर परिभाषाएं: CURL_STATICLIB जोड़ें
  4. कॉन्फ़िगरेशन गुण> लिंकर> सामान्य> अतिरिक्त लाइब्रेरी निर्देशिकाएं: C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib जोड़ें C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib
  5. कॉन्फ़िगरेशन गुण> लिंकर> इनपुट> अतिरिक्त निर्भरता: libcurl_a.lib जोड़ें

सी। अपनी परियोजना से libcurl कॉल करें

निम्नलिखित नमूना libcurl को एक कॉल दिखाता है:

#include "stdafx.h"

#include <curl/curl.h>

void main(int argc, char* argv[])
{
    CURL *curl = curl_easy_init();
    if (curl) printf("curl_easy_init() succeeded!\n"); 
    else fprintf(stderr, "Error calling curl_easy_init().\n");
}

यह थोड़ा देर हो चुकी है, लेकिन उन लोगों के लिए जो अभी भी समस्याएं हैं, इस विधि ने मेरे लिए सबसे अच्छा काम किया है:

  1. सिस्टम पाथ में वीएस जोड़ें:
    उदाहरण के लिए: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
  2. Http://curl.haxx.se/download.html से वर्तमान curl-X.zip डाउनलोड करें और अनजिप करें।
  3. curl-X/winbuild पर ओपन कमांड लाइन।
  4. vcvars32.bat कॉल vcvars32.bat
  5. कॉल nmake /f Makefile.vc mode=static VC=12
  6. गोटो curl-X/builds/libcurl-XXX

वहां आप शामिल हैं और libcurl_a.lib । यह lib मेरे लिए ठीक काम करता है।
जब आप इस lib के साथ अपना कोड संकलित करते हैं तो -DCURL_STATICLIB को परिभाषित करना याद रखें।


ऐसा करने का सबसे आसान तरीका जो मैंने पाया है, पहले यह सुनिश्चित कर लें कि nuget इंस्टॉल है।

http://www.nuget.org/

फिर अपनी परियोजना बनाएं।

फिर http://www.nuget.org/packages/curl/ पर http://www.nuget.org/packages/curl/ और संकुल प्रबंधक कंसोल पर जाने के निर्देशों का पालन करें और PM> Install-Package curl टाइप PM> Install-Package curl

यदि आप अपनी प्रोजेक्ट निर्देशिका में पैकेज निर्देशिका की तलाश करते हैं, तो आपको फ़ाइलें और लाइब्रेरी फाइलें शामिल होंगी। ध्यान दें कि विजुअल स्टूडियो 110 के लिए कोई संस्करण नहीं है, 120 नहीं, लेकिन क्योंकि libcurl एक सी लाइब्रेरी है, आप इसे विजुअल स्टूडियो 2013 के साथ उपयोग कर सकते हैं। सुनिश्चित करें कि निर्देशिका गुणों में Visual C ++ निर्देशिकाओं के अंतर्गत निर्देशिका और lib निर्देशिका शामिल हैं।

सुनिश्चित करें कि आपके पास निम्न फ़ाइलों को लिंकर libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib; में अतिरिक्त इनपुट के रूप में है libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib;


समस्या यह है कि डिफ़ॉल्ट VS2013 प्लेटफ़ॉर्म टूल के लिए लक्ष्य NuGet संकुल में सेट नहीं हैं । यही कारण है कि यह वीएस2012 में काम करता है लेकिन वीएस2013 नहीं। मैंने मैन्युअल रूप से प्रतिस्थापन लक्ष्य फ़ाइलों को बनाया है। निर्देश और डाउनलोड:

https://github.com/evoskuil/curl-nuget-targets