【问题标题】:using curl in a win c++ application在 Win C++ 应用程序中使用 curl
【发布时间】:2014-10-27 11:11:14
【问题描述】:

我正在尝试在我的 windows c++ 应用程序中使用 curl,但一直遇到问题。
我在 Windows 8.1 机器上使用 Visual Studio 2013。
这是我到目前为止所做的:

  1. 克隆了repo from github
  2. 构建 libcurl 项目,生成三个文件:libcurl.dll、libcurl_imp.lib 和 libcurl_imp.exp
  3. 在我的应用项目中,我将 curl 包含目录添加到了附加包含目录中
  4. 将 libcurl_imp.lib 添加到附加依赖项中
  5. 构建我的项目

当我运行我的可执行文件时,它会说:

the program can't start because libcurl.dll is missing from your computer

我在上面找到了一些东西,但他们通过添加 libcurl dll 和 exe 解决了这个问题,这不是我想要的,因为我希望我的可执行文件包含 libcurl 以便它可以运行无需 dll 的机器。

有什么想法吗?
谢谢。


编辑

第二步非常简单,我只需右键单击项目 (libcurl) 并选择构建。
由于 cmets 我在将配置类型更改为静态库后对其进行了重建,所以现在它只生成一个文件:libcurl.dll,据我所知,它不是静态库...


第二次编辑

我在获取 http 功能上浪费了太多时间,并且基于我通过此处的评论 (using libcurl without dll) 找到的信息,我决定放弃这种方法,并且我找到了完全适合我需要的东西,并且易于安装/使用:C++ REST SDK (codename "Casablanca")

【问题讨论】:

  • 没有 dll 意味着您需要静态构建,但现在看来并非如此。您不知道您是如何完成第 2 步的,但 winbuild/makefile.vc 中的第一行是 !IF "$(MODE)"=="static" 所以我猜您必须在构建系统中将 MODE 设置为 static。
  • 你需要将 cURL 构建为静态库
  • 我没有文件名makefile.vc,只有 cmake 制作文件。我编辑了我如何构建 libcurl 的问题。谢谢。

标签: c++ curl visual-studio-2013 libcurl


【解决方案1】:

尝试将 libcurl.dll 目录添加到 PATH 环境变量中。

【讨论】:

  • 正如我在问题中所写,我不希望我的应用程序依赖于用户是否有 libcurl,因此将其放在路径中无济于事。
  • 将 libcurl.dll 提供给您的用户。将其放在可执行文件所在的同一目录中。
  • 这不是一个理想的解决方案,我很难实施和分发。必须有一种方法可以将 lib 包含在可执行文件中。
  • 如果你绝对需要一个单文件分发,你必须弄清楚如何构建libcurl_static.lib并链接到它并且拥有它所依赖的库的静态版本和链接到这些库,见here
  • 我明白了。在这种情况下,非常感谢您提供的信息,我想我会继续使用 curl。我想我找到了一个更简单的解决方案(对于我的场景),微软的 REST sdk。
猜你喜欢
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
相关资源
最近更新 更多