簡體   English   中英

C++ CURL 庫鏈接器錯誤但包含正確的庫

[英]C++ CURL Library Linker Error but included the right libs

所以我試圖將 curl 庫集成到我的 C++ 項目中。 我做了以下步驟:

  • 下載 curl 庫並解壓
  • 運行visual studio 19的開發者控制台並運行以下命令:
    • cd 到 winbuild 文件夾
    • 設置 RTLIBCFG=靜態
    • nmake /f Makefile.vc mode=static vc=19 debug=yes
  • 在 builds 文件夾中,我將 bin、include 和 lib 文件夾復制到我自己的 Visual Studio 項目中,並在 Settings > C/C++ > General > Additional Include Directories 下設置 include 目錄和 Settings > Linker > General > Additional Library Directories 下的庫目錄然后是 Settings > Linker > Input > Additional Dependencies 下的實際 lib 文件。

我認為這應該是為了讓 CURL 運行,但是對於 lib 的每個函數調用,我都收到了鏈接錯誤。 即使在我將這些庫添加到鏈接器輸入中的附加依賴項設置之后: Normaliz.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;advapi32.lib;

有沒有可用的解決方案? 在我在互聯網上的搜索中,我總是得到解決方案,包括 Noraliz.lib;[...] 然后它被告知它應該運行但它對我不起作用。 會很高興得到一些幫助。 這是我試圖編譯的代碼:

#include <iostream>
#define CURL_STATICLIB
#include <curl/curl.h>
#include <iostream>

static int writer(char* data, size_t size, size_t nmemb, std::string* writerData)
    {
    if (writerData == NULL)
        return 0;

    writerData->append(data, size * nmemb);
    return size * nmemb;
    }

int main(int argc, char** argv)
    {
    std::string content;

    curl_global_init(CURL_GLOBAL_ALL);
    CURL* curl = curl_easy_init();

    if (curl)
        {
        curl_easy_setopt(curl, CURLOPT_URL, "");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
        CURLcode code = curl_easy_perform(curl);
        }

    curl_easy_cleanup(curl);
    curl_global_cleanup();

    return 0;
    }

您需要添加在“預處理器定義”部分中定義的CURL_STATICLIB宏。


也許您可以嘗試基於 libcurl 的teemo庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM