libCurl 和 OpenSSL 的奇怪之处

2024-02-26

又是我。我就是不明白,为什么会这样!

我下载了 OpenSSL 的编译静态库,从这里 http://www.shininglightpro.com/download/Win32OpenSSL-1_0_0d.exe,此链接位于 cUrl 官方网站的下载页面。我下载了 Zlib 并编译了它们,然后我编译了 libcurl

mingw32-make mingw32-ssl-zlib

我将所有 makefile.m32 路径更改为 Zlib 和 OpenSSL 文件。一切顺利,我收到了 libcurl.a 和 libcurldll.a。我在项目的 lib 文件夹中添加了 libcurl.a 和 libeay32.a、libssleay32.a 和 libz.a。 我建立了项目 - 它说一切都很好。我跑了——它就终止了。我正在使用 MinGW 和 Eclipse。

它是这样编译的:

g++ -DCURL_STATICLIB -O0 -g3 -Wall -c -fmessage-length=0 -osrc\main.o ..\src\main.cpp

g++ -L..\lib -oYTUploader.exe src\main.o -lcurl -lws2_32 -lwldap32 -leay32 -lssleay32 -lz

我运行 DependencyWalker,它说缺少 ieshims.dll、libeay32.dll 和 ssleay32.dll。但为什么?为什么它需要 OpenSSL dll,我使用的是静态链接!我使用 OpenSSL 的静态库构建了静态 libCurl 库。关于ieshims.dll我也不明白为什么它需要它! 请帮忙,我不知道出了什么问题!我按照说明编译了 cUrl,一切都应该没问题。


您链接的 openssl-libs 似乎是导入库。这意味着它们只包含代码调用函数所需的信息,然后从 dll 加载并调用相应的函数。

所以问题是:虽然您链接到静态库,但库随后会加载并使用动态 dll。它们不是“真正的”静态库。

一种解决方案是获取其他库(或自己编译它们),甚至更简单:只需将 dll 复制到 .exe 所在的目录中就可以了。

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

libCurl 和 OpenSSL 的奇怪之处 的相关文章

  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有

随机推荐

  • SVG - 从窗口坐标到ViewBox坐标

    基本上我有一个 svg SecondSVG 到一个 svg FirstSVG 到一个 svg MainSVG 每个 svg 都有自己的 ViewBox 该页面可以由另一个页面加载到屏幕上的任何位置 那么基本上我如何找到 SecondSVG
  • 单击时填充 HTML 下拉列表

    我有一个包含多个 HTML 的页面select下拉菜单 并且需要人口onclick的元素 此填充是通过在单击事件侦听器中使用 AJAX 调用完成的select元素 原因是性能和负载非常关键 因此不能在页面加载时填充它们 另外 设计must使
  • 在默认构造函数或内联初始化变量之间有区别吗? [复制]

    这个问题在这里已经有答案了 我在 Java 中发现了一些相关问题 但没有找到与 C 相关的问题 因此请原谅任何重复的问题 又短又甜 有什么区别 有没有 public static class Foo public static List
  • 与 if 语句中的字符串进行比较不起作用

    我尝试比较从 scanf 和 fscanf 获得的两个字符串 我已经弄清楚每个变量里面的内容是什么 它都显示相同的字符串 但是当我在 if 语句中与这两个字符串进行比较后 它不起作用并执行 else 语句 我的代码有什么问题吗 int ma
  • 如何使 jetty-maven-plugin 部署从存储库检索的战争?

    我正在为一个大型网络项目设置一个集成测试模块 集成测试模块与Web项目本身分离 并且有自己的pom xml 这个想法是使用 maven soapui plugin 发送请求并验证响应 设置soapui插件并不麻烦 但是 我无法弄清楚如何告诉
  • 如何在wpf中的用户控件中使用命令绑定?

    在主窗口中 命令绑定工作正常 在 UserControl 1 中它不起作用 请注意 数据上下文设置正确 作为绑定结果的按钮内容证明了这一点 我并不是试图将用户控件中的命令绑定到主窗口中的命令或任何其他此类技巧 我只是想复制我在 UserCo
  • 使用Git推送部署项目

    是否可以使用部署网站git push 我有预感这与使用有关git钩子 http www git scm com book en v2 Customizing Git Git Hooks执行一个git reset hard在服务器端 但我将如
  • 如何在 PHP 中定义空对象

    使用新数组我这样做 aVal array aVal key1 var1 something aVal key1 var2 something else 对象是否有类似的语法 object oVal oVal gt key1 gt var1
  • MySQL 使用双左连接更新行,限制第一个匹配

    我有三张桌子 SQLFiddle 已创建表 http sqlfiddle com 9 a3dab 橙色文本是我需要通过比较 Products name 与 Filters filter 获得的内容 我发现子字符串匹配可以这样完成 on Pr
  • 在 Rails 操作中解析 windows-1252 参数

    我的 API 正在接收一个在 POST 正文中包含 windows 1252 编码数据的调用 在 Rails 6 0 3 中 这显然有效 但是rails 6 1 1抛出ActionController BadRequest 无效的请求参数
  • 流中的异常未被捕获

    我有一个 kotlin 流程 其中中途抛出异常 无论我做什么 异常都不会被捕获 流程是这样的 在视图模型中 我有一个值 需要在日期更改时从数据库中重新读取 我为此使用了 switchmap val branches LiveData
  • 是否有 Scheduler/Calendar JS Widget 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一些基于 JavaScript 的组件用作课程安排程序 这将是 Google 日历和登录时间之间的交叉 我不知道正确的术语是课程
  • 防止快速单击按钮时导航两次

    我正在使用反应导航 并且希望防止当用户快速点击 单击按钮时导航到同一屏幕两次 这是我的减速器 export const navReducer state initialState action gt let nextState switch
  • 在 Android 上使用 Java AWS SDK 与 Android AWS SDK

    构建应用程序时是否可以使用 Java AWS SDK 而不是 Android AWS SDK 无论哪种方式 Java 都是所使用的底层技术 我希望使用 Android 版本的 SDK 中不提供的一些服务 AWS Java SDK 和 AWS
  • 我尝试使用 sort() 对数组进行排序,但失败

    if GET value moto array array 1 gt Yamaha array array 2 gt Suzuki array array 3 gt Triumph array array 4 gt KTM array ar
  • 在 VBA 代码中创建 PDF 文件会导致 Access 崩溃/关闭

    我有一个 MS Access 2016 应用程序 其中包含需要保存为 PDF 文件的报告 每当用户按下执行 PDF 输出的按钮时 应用程序就会在没有警告的情况下关闭 崩溃 知道什么可能导致这种情况吗 按下按钮调用的 VBA 代码如下所示 D
  • 有 2 个构造函数是正确的,一个用于依赖注入,另一个用于解决注入?

    我的类中有 2 个构造函数 public class CacheWebServices ICacheWebService public ICache apiConnector get set public CacheWebServices
  • 删除 XML 节点

    我有一个 XML 文件 其中包含
  • 更改Material Angular 4 Datepicker的语言

    如何更改Material Angular的Datepicker的语言 我在 Angular 材料 2 的文档中找不到 这是一个 plunkrhttps plnkr co edit unzlijtsHf3CPW4oL7bl p preview
  • libCurl 和 OpenSSL 的奇怪之处

    又是我 我就是不明白 为什么会这样 我下载了 OpenSSL 的编译静态库 从这里 http www shininglightpro com download Win32OpenSSL 1 0 0d exe 此链接位于 cUrl 官方网站的