使用 libcurl 而不使用 dll

2024-02-13

我正在使用 Microsoft Visual C++ 2010,我需要制作一个不需要 libcurl dll 的应用程序。我在预处理器指令中定义 CURL_STATICLIB 并链接到 libcurl.lib、libcurl_static.lib、ws2_32.lib 和 winmm.lib,但它仍然需要 dll 才能工作。如果我只链接到 libcurl_static.lib,它会出现未定义的外部符号错误。我怎样才能让它工作?

我也尝试过构建源代码,但出现了 13 个错误(哇,不幸的数字),全部显示“错误 C2011:'pollfd':'struct' 类型重新定义”。有人可以帮我让 libcurl 工作吗?


没有简单的答案:) Libcurl 依赖于其他第三方库(它取决于您正在使用的二进制发行版)。当您摆脱 DLL 时,您必须手动链接相应的第三方。

好的,所以第一点是你不应该链接到库卷库因为它会将您绑定到您不希望绑定的 DLL。

第二点 - 当你链接时libcurl 静态库然后(如上所述)您还必须链接它所依赖的库。简单的方法是执行以下操作:

#if defined CURL_STATICLIB

#if defined _DEBUG
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\lib\\Debug\\curllib_static.lib")
#else
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\lib\\Release\\curllib_static.lib")
#endif

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\libeay32.lib")
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\openldap.lib")
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\ssleay32.lib")

#endif

但这样一来,您将获得另外三个依赖项。或者,您可以寻找一种静态链接它们的方法,但这是一个不同的故事。

作为另一种选择 - 你可以重建libcurl 静态库禁用所有不需要的功能后从源中删除不需要的依赖项(如“在 Win32 版本中禁用特定协议安装文件的“)。

最后一点 - 由于 libcurl 对源代码的 Windows 编译的支持相当差,我建议您重新考虑摆脱的想法卷曲库.dll.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 libcurl 而不使用 dll 的相关文章

  • h 文件中声明的 c++ 静态数组给出警告“已定义但未使用”

    我对以下内容感到好奇 我在头文件中声明了一个简单的 C 数组 如下所示 static int userCardsIndexes INITIAL CARDS NUMBER 0 1 8 9 16 17 它给了我很多警告 userCardsInd
  • 可以在 .h 文件中声明静态全局变量吗?

    static 关键字将全局变量的范围限制为该翻译单元 如果我使用static int x在 h 文件中并包含该 h 文件每隔一个文件 它们不会都属于同一个翻译单元吗 那么 x不是到处可见吗 那么现在static有什么作用呢 另外 有没有什么
  • Java 从我创建的另一个类访问数组元素

    我正在使用 main 方法在类中创建一个数组 Word attempts new Word 26 Word 类中的字段是 private String attempts Word 类中的构造函数是 public Word int a att
  • 无法初始化静态QList?

    我收到以下错误 Cube cpp 10 error expected initializer before lt lt token 以下是头文件的重要部分 ifndef CUBE H define CUBE H include
  • 在 C 中初始化结构体的静态数组

    我正在用 C 实现一个纸牌游戏 纸牌有很多种类型 每种纸牌都有大量信息 包括一些需要单独编写与其关联的脚本的操作 给定这样的结构 并且我不确定我的语法是否适合函数指针 struct CARD int value int cost This
  • 使用反射获取静态类列表

    很多问题都很接近 但没有一个能回答我的问题 如何使用 C 3 5 中的反射从程序集中获取所有静态类 我已经定义了所有类型 但没有 IsStatic 属性 计算 0 个构造函数确实很慢 而且也不起作用 有什么提示或一行代码吗 Chris 以下
  • 来自其他位置的 .NET 参考 dll

    我正在根据第三方程序中包含的一些 DLL 制作一个程序 我不被允许自己分发这些 DLL 必须安装第三方程序才能使我的程序运行 我怎样才能引用这些DLL 我通过程序设置的注册表项知道它们的确切位置 我尝试在 Project gt Refere
  • 如何将模块化 Sinatra 应用程序部署到 Heroku?

    由于某种原因 我无法访问公共目录中的任何文件 未发现错误 我不会把public显然 URL 中的一部分 查看GitHub 上的 Lovers 源代码存储库 https github com mattdipasquale loversapp
  • 为什么c++中的构造函数不能声明为静态?

    我最近读完了第一卷 Bruce Eckel 的 Thinking in C 现在转向将这些知识应用到一些实际用途中 我最近正在使用静态成员函数 并尝试将构造函数设为静态 但编译器对此不满意 我查了书上的原因 但没有找到 谁能解释为什么 P
  • Powershell 调用程序集委托

    我有一个用于过程控制应用程序的 dll 程序集 我在我的内部使用 load电源外壳 script 该DLL包含我需要使用的委托类型 委托名称是 X Y Delegate 我在该 DLL 中有另一个方法 应该这样调用 Method deleg
  • 在 C++/CLI 中创建时初始化静态字典

    今天我看到创建静态字典并初始化它的 C 代码 public static readonly Dictionary
  • 尝试使用适用于 Windows XP 的 Heroku 时未找到 msvcrt-ruby18.dll

    我有一个学生在 Windows XP 上进行开发 他在尝试运行时遇到了一个奇怪的错误heroku keys add 错误是 This application has failed to start because msvcrt ruby18
  • 防止 Ada DLL 中的名称损坏

    有没有一种简单的方法可以防止在创建 Ada DLL 时 Ada 名称被破坏 这是我的 adb 代码 with Ada Text IO package body testDLL is procedure Print Call is begin
  • 在 C# 中使用“C”dll [重复]

    这个问题在这里已经有答案了 可能的重复 如何从 C ASP NET 网页调用非托管 C C 代码 https stackoverflow com questions 720004 how do i call unmanaged c c co
  • 外部类与单例类

    假设我们使用 extern 关键字有一些外部链接 我有 在class1 cpp中 MyClass myClassVar NULL 构造函数初始化上述内容 析构函数删除 然后在class2 cpp和class3 cpp中有 extern My
  • Sails js 路由静态 html

    我想在我的 sails js 应用程序中完全分离客户端和服务器端 如果我删除 路由 它将自动从 assets 文件夹中提供一个名为index html的文件 我想从资产文件夹中提供另一个文件 我该怎么做 如果你看看 sails 使用的中间件
  • C# 中 DLL 和命名空间的关系

    这里有一个高级问题 今天我花了很多时间自学基本的高级概念 例如 API 静态和动态库 DLL 以及 C 中的编组 获得所有这些知识让我想到了一个看起来非常基本的问题 并且可能表明我对这些概念的理解存在漏洞 我知道的 DLL 可能包含类 这些
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 静态变量中的 qt tr()

    我在 qt 中的翻译方面遇到问题 我的项目中的所有翻译都工作正常 但有一个翻译位于类的静态变量中 相应部分代码如下 头文件类似于这样 typedef struct int type QString problematicString inf
  • 使用静态指针的动态内存分配

    有人可以向我解释一下为什么下面的代码会这样工作吗 这里我已经初始化了outd作为文件中的静态指针code2 c 然后我动态地为其分配内存malloc 从单独文件中的主函数中一次又一次地调用它code1 c 它看起来整个数组以静态方式运行 因

随机推荐

  • 与曼哈顿距离的距离变换 - Python / NumPy / SciPy

    我想使用 Python 和 Numpy 生成这样的二维数组 0 1 2 3 4 4 3 4 1 2 3 4 4 3 2 3 2 3 4 4 3 2 1 2 3 4 4 3 2 1 0 1 4 5 5 4 3 2 1 2 几乎数字从零开始左右
  • 何时使用关联实体?

    假设有两个实体 分别称为 Employee 和 Campaign 一名员工可以参与多项活动 一项活动可以有多名员工 我已经知道这是多对多的关系 在绘制 ER 图 Chen 表示法 时 这种关系用菱形来表示 但关联实体有一个单独的符号 它象征
  • CSS3 calc 函数:mod 运算符的问题

    我在用着 宽度 计算 100 mod 320 但它总是返回父元素的完整宽度 语法似乎没有任何问题 看起来像是一个支持问题 在 chrome 37 和 firefox 32 0 上测试 这里有一个fiddle http jsfiddle ne
  • CakePHP 2.1 使用包含条件进行查找

    我有以下型号 行业 ID 名称 Movie id name Industry id 行业有很多电影 Trailer id name movie id 电影有很多预告片 我需要为每个找到 6 个最新预告片Industry 每部电影不需要有预告
  • 类型错误:float() 参数必须是字符串或数字,而不是“函数” – Python/Sklearn

    我有一个名为 Flights py 的程序的以下代码片段 Load the Dataset df dataset df isnull any df df fillna lambda x x median Define X and Y X d
  • MySql查询时间间隔数据的直方图

    我有一个这种类型的事件输入 event user event start event end event type 插入到 MySql 表中 每个表都在自己的行中 以 user start 作为主键 我需要按时间间隔 例如分钟 查询类型的直
  • 如何调试Android的NFC实现?

    这个问题可以分解成多个更小的问题 最终结果是能够使用 gdb 等调试器在 Galaxy Nexus Android 4 1 设备的 C C NFC 实现中设置断点 以检查其内部状态 是否可以将 Galaxy Nexus 设备上的库替换为包含
  • Jenkins Windows Slave 忽略本地 Git 设置

    我已经将 Windows Jenkins 从机设置为 Unix Jenkins 主机 我正在运行 Windows 8 1 msysgit 1 9 5 和 Jenkins 1 616 当检查路径 文件名超过 255 个字符的存储库时 我收到
  • 如何使用 C# 将浏览文件按钮添加到 Windows 窗体

    我想在单击 浏览 按钮时选择本地硬盘上的文件 我不知道如何使用OpenFileDialog控制 谁能帮我 这些链接通过示例进行了解释 http dotnetperls com openfiledialog http dotnetperls
  • 无法加载资源:net::ERR_CERT_AUTHORITY_INVALID

    我正在通过 https 实现 Node js 脚本 Node js const options key fs readFileSync private key cert fs readFileSync cert crt This is ne
  • 使用 CSS/HTML 更改悬停时的图像

    我遇到这个问题 我已设置一个图像以在鼠标悬停时显示另一个图像 但是第一个图像仍然出现 并且新图像不会更改高度和宽度并与另一个图像重叠 我对 HTML CSS 还很陌生 所以我可能错过了一些简单的东西 这是代码 img src Library
  • VB.Net 将值传递给另一种形式

    我想知道如何将值从 form1 传递到另一个表单的公共子 问题是它说 在这种情况下无法访问 因为它是 私人 我尝试将 Form 1 Private Sub 更改为 Public Sub 但仍然存在相同的错误 我应该如何让它发挥作用 Publ
  • 如何使用 angular-cli (6.x) 创建 mono-repo 项目结构

    我想使用 angular cli 生成一个新的工作区 目前执行此操作的唯一方法是运行 ng new asdf cd asdf ng g application whatever 但随后所有的src 文件仍然存在 以及现在存储不一致的项目的原
  • JPA @Entity继承

    我一直在研究 JPA Hibernate Entity继承有一段时间了 似乎找不到任何可以解决我想要实现的目标的东西 基本上我希望能够定义一个 Entity根据需要包含所有列和表映射 然后我希望能够延长 Entity在许多不同的地点 有不同
  • 通过 WinAPI 确定 Intel HD 显卡版本

    因此 我尝试通过 WinAPI 函数获取有关显卡的信息 但有一个关于如何获取确切的卡信息的问题 我已经编写了调用 EnumDisplayDevices 的代码 并通过我的调用收到了 DeviceString Intel R HD Graph
  • C 宏,求两个数中的最小值

    我想用 define 创建一个简单的宏来返回两个数字中较小的一个 我怎样才能在 C 中做到这一点 提出一些想法 看看是否可以让它变得更加混乱 通常 define min a b a lt b a b 请注意 这会评估最小值两次 这是灾难的原
  • Python 或 C/C++ 中的 RTSP 库?

    我正在尝试寻找任何适用于 Python 或 C C 的 RTSP 流媒体库 如果没有 还有其他实时流解决方案吗 在 Python 或 C C 中实现 RTSP 有多容易或困难以及从哪里开始 try live555 http www live
  • 具有多重索引的 Pandas 划分 (.div)

    我有类似的东西 df pd DataFrame np random randint 2 10 size 5 2 df index pd MultiIndex from tuples 1 A 2 A 4 B 5 B 8 B df index
  • TransformerFactory - 避免网络查找来验证 DTD

    我需要为 XML 文档的离线转换进行编程 当使用以下命令加载原始 XML 文件时 我已经能够停止 DTD 网络查找 DocumentBuilderFactory factory factory DocumentBuilderFactory
  • 使用 libcurl 而不使用 dll

    我正在使用 Microsoft Visual C 2010 我需要制作一个不需要 libcurl dll 的应用程序 我在预处理器指令中定义 CURL STATICLIB 并链接到 libcurl lib libcurl static li