使用LibCURL C++

23

我一直在尝试在C++中使用LibCURL几个小时了,这真的让我很烦。我有一个感觉是别人之前遇到过这样的问题,但我没有找到任何能给我解决方案的帖子。

这是我做过的事情:

由于libCurl下载页面非常令人困惑,所以我将完全按照我所做过的进行描述。首先,我下载了位于顶部的文件(curl-7.23.1.zip),然后在winRAR中打开它。然后我进入include文件夹,并从中提取出'curl'文件夹。

enter image description here

然后,我创建了一个新项目(Code::Blocks),并将'curl'文件夹移动到与我的项目相同的文件夹中。

enter image description here

然后我在文件顶部添加'#include "curl/curl.h"',并尝试初始化一个简单的CURL变量... 然后我会收到一个错误,说:

...\main.cpp|22|undefined reference to `_imp__curl_easy_init'|

以下是实际代码/错误的图片:

在这里输入图像描述

说实话,我认为我正在做的事情非常非常愚蠢,但我就是不知道该怎么办。


我还没有让它工作。有人有其他建议吗?再次感谢。 - hetelek
3个回答

14

最终在一些帮助下,我终于使它工作了。

以下是我的操作过程:

  1. 下载“Win32 Generic” libcurl包。(7.24.0
  2. 在 Code::Blocks 中,右键单击项目并打开构建选项。
  3. 转到“链接器设置”,并将“curldll”添加到“链接库”列表框中。(图像
  4. 在“搜索目录”下,将其与“curl-7.24.0-devel-mingw32 \ include”文件夹的路径相连。
  5. 在“搜索目录”下的“链接器”选项卡中,添加“curl-7.24.0-devel-mingw32\lib”目录的路径。
  6. 将“curl-7.24.0-devel-mingw32\bin”文件夹中的所有 DLL 文件移动到项目的“bin”文件夹中。
  7. 构建和享受。

要使用 Qt 使用 libCurl,则要容易一些。

  1. 将所有必要的文件/ dlls / 库移动到调试文件夹中。确保您包括“curl”文件夹。

  2. 转到您的 .pro 文件,并添加“libcurldll.a”的位置。例如(我的):

    LIBS += C:\ libcurl \ 7.24.0 \ lib \ libcurldll.a

  3. 享受。

感谢R. Martinho Fernandes


2
你还需要添加来自libcurl的lib/文件夹,其中包含*.a*.dll文件。这些文件是库本身,是您链接程序的编译二进制文件
如果您动态链接库,您需要将*.dll放在项目目录中,在C:\WindowsC:\MinGW\bin(如果C:\MinGW是编译器路径)中。

你能否进一步解释我需要做什么?通过*.dll,你是指'libcurl.dll'吗?再次感谢。 - hetelek
是的,libcurl.dll和您在下载中可能找到的任何其他dll。您需要提取二进制文件并将其放置在操作系统可以找到它的位置。为了静态链接到dll,它必须放置在$COMPILER_PATH \ lib中,其中$COMPILER_PATH通常为C:\ MinGW with C :: B。 - Geoffroy

0

"首先,我下载了顶部的文件(curl-7.23.1.zip),然后在winRAR中打开它。然后,我进入include文件夹,并从中提取出'curl'文件夹。"

听起来你没有编译curl的源代码。页面顶部的所有下载都只是源代码。


他没有编译libcurl。我理解他的问题是关于项目中的编译错误。这些错误是由于他试图包含尚不存在的内容引起的。(至少在我看来是这样的。) - Wes Ovall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接