我找到相同的代码来从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来获取某个网页的内容。
答案 0 :(得分:2)
#include <C:\curl\curl.h>
只包含相关的函数原型等。您还需要做的是更新项目设置以告知链接器链接到相应的curl库。
由于您使用的是Visual Studio,请右键单击项目并选择属性。然后转到配置属性/链接器。然后转到Linker - &gt;输入并在curl.lib
字段中输入您的lib文件的名称(C:\curl\
中可能有Additional Dependencies
)。
答案 1 :(得分:0)
按照这些说明进行操作
MSVC 6 IDE
最小的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文件