1

我找到了相同的代码来从 C++ 的网页中读取数据。就像这样:

#include <iostream>
#include <string>
#include <C:\curl\curl.h>
// Right path, I am sure.

static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main(void)
{
    CURL *curl;
    CURLcode res;
    std::string readBuffer;

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);

        std::cout << readBuffer << std::endl;
    }
    return 0;
}

但它没有按预期工作。这是错误消息:

1>------ Build started: Project: deneme, Configuration: Debug Win32 ------
1>  deneme.cpp
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function _main
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function _main
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function _main
1>deneme.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function _main
1>C:\Users\nazif\Documents\Visual Studio 2010\Projects\deneme\Debug\deneme.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我怎样才能解决这个问题?

基本上,我想在我的 C++ 代码中使用 curl 来获取某个网页的内容。

4

2 回答 2

2

只包括相关的#include <C:\curl\curl.h>函数原型等。您还需要做的是更新您的项目设置以告诉链接器链接到适当的 curl 库。

由于您使用的是 Visual Studio,请右键单击您的项目并选择属性。然后转到配置属性/链接器。然后转到 Linker -> Input 并在字段中输入您的 lib 文件的名称(可能有curl.libin C:\curl\Additional Dependencies

于 2013-01-04T14:09:06.770 回答
0

按照这些说明

MSVC 6 集成开发环境


一个最小的 VC++ 6.0 参考工作区 (vc6curl.dsw) 可用于源分发存档,以允许正确构建两个包含的项目,libcurl 库和 curl 工具。

1)用MSVC6的IDE打开vs/vc6/vc6curl.dsw工作区。

2) 从顶部菜单中选择“构建”。

3) 从下拉菜单中选择“批量构建”。

4) 确保八个项目配置被“选中”。

5) 单击“构建”按钮。

6) 一旦构建了八个项目配置,您就完成了。

动态和静态 libcurl 库内置于调试和发布风格中,并且可以分别位于其自己的子目录 dll-debug、dll-release、lib-debug 和 lib-release 中,所有这些库都位于 'vs/vc6/ 下lib' 子目录。

以同样的方式创建了四个 curl 可执行文件,每个都使用其各自的库。生成的 curl 可执行文件位于其自己的子目录 dll-debug、dll-release、lib-debug 和 lib-release 中,位于“vs/vc6/src”子目录下。

这些参考 VC++ 6.0 配置是使用动态 CRT 生成的。

有意地,这些参考 VC++ 6.0 项目和配置不使用第三方库,例如 OpenSSL 或 Zlib,以便为所有新用户正确编译和配置,而无需进一步要求。

如果您需要更多“参与”的内容,您可以调整它们以供您自己使用,或者探索上述“命令行中的 MSVC”中描述的 makefile 世界。

构建完成后,您将在其中一个文件夹中拥有一个 .lib 文件

于 2013-04-04T15:51:19.197 回答