我找到了同样的代码来从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来获取某个网页的内容。
发布于 2013-01-04 22:09:07
#include <C:\curl\curl.h>
只包含相关的函数、原型等。您还需要做的是更新项目设置,告诉链接器链接到适当的curl库。
由于您使用的是Visual Studio,因此右键单击您的项目并选择属性。然后转到Configuration Properties/Linker。然后转到Linker输入并在Additional Dependencies
字段中输入您的->文件的名称(在C:\curl\
中可能有一个curl.lib
)。
发布于 2013-04-04 23:51:19
请按照以下说明操作
MSVC6集成开发环境
源代码分发归档中提供了一个最小的VC++ 6.0参考工作区(vc6curl.dsw),以允许正确构建包含的两个项目: libcurl库和curl工具。
1)使用MSVC6的IDE打开vs/vc6/vc6curl.dsw工作区。
2)从顶部菜单中选择'Build‘。
3)从下拉菜单选择'Batch Build‘。
4)确保八个项目配置都被“勾选”。
5)点击“Build”按钮。
6)一旦构建了八个项目配置,您就完成了。
动态和静态libcurl库是以debug和release两种风格构建的,每个库都可以位于自己的子目录dll-debug、dll-release、lib-debug和lib-release中,所有这些库都位于'vs/vc6/lib‘子目录下。
以同样的方式创建四个curl可执行文件,每个文件使用其各自的库。生成的curl可执行文件位于其自己的子目录dll-debug、dll-release、lib-debug和lib-release中,位于'vs/vc6/src‘子目录下。
这些参考CRT6.0配置是使用动态VC++生成的。
有意地,这些参考Zlib6.0项目和配置不使用第三方库,例如OpenSSL或VC++,以允许所有新用户在没有进一步要求的情况下进行正确的编译和配置。
如果你需要一些更“复杂”的东西,你可以调整它们以供你自己使用,或者探索上面描述的“MSVC from command line”的makefile世界。
构建完成后,其中一个文件夹中将包含一个.lib文件
https://stackoverflow.com/questions/14158558
复制相似问题