【发布时间】:2015-04-16 09:44:47
【问题描述】:
我是 C++ 新手,但我很难弄清楚如何将 libcurl 与 c++ 程序一起使用。
A) 我应该使用 apt-get 为服务器安装 libcurl 还是将其安装为 C 中的某种库?
B) 为 libcurl 使用 c++ 绑定有什么意义,我不能在没有绑定的情况下直接使用它吗? https://github.com/JosephP91/curlcpp
对不起,如果这很明显。
【问题讨论】:
我是 C++ 新手,但我很难弄清楚如何将 libcurl 与 c++ 程序一起使用。
A) 我应该使用 apt-get 为服务器安装 libcurl 还是将其安装为 C 中的某种库?
B) 为 libcurl 使用 c++ 绑定有什么意义,我不能在没有绑定的情况下直接使用它吗? https://github.com/JosephP91/curlcpp
对不起,如果这很明显。
【问题讨论】:
您需要一个库来链接。不太确定apt-get 是否提供,但检查项目网站可能会出现下载链接。或者,您可以从源代码构建库。
至于 C++ 包装器,您是正确的,因为您不需要 它。它可能是为了保持面向对象的目的而编写的,也许是为了增加一些便利性。否则,您可以毫无问题地使用旧的 C 方式。
【讨论】:
为了商品,使用 apt-get/yum 或您在操作系统中使用的安装系统总是更容易安装。
A) 在我的公司,我们将它编译在一个文件夹中。在我家,我通常从官方存储库安装它,我发现它更容易,但这取决于您是否想要分发您的产品并使用一个版本来固定您的代码。
B) 这取决于你,我通常直接使用它,我准备自己的事件系统(kqueue/epoll 或使用 libuv/libev/libevent/asio),并分配回调。
【讨论】:
g++ -o sms ./src/sms.o -lcurl
A) 你必须在你的 SO 中安装 lib。否则你不能在程序中链接它。
B) 第1部分:libcurl的c++绑定要点,它允许你这样做:
#include "curl_easy.h"
否则你不可以这样做,没有自己实现curl_easy.h,记住它只有C api接口(由libcurl主页拍摄),它允许你使用它是因为它的 C 但不是在本机模式下。 B)第 2 部分:是的,您可以,但您需要使用 C 版本的 libcurl。不是你买的C++版本。
【讨论】: