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 的奇怪之处 的相关文章

随机推荐

  • 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 官方网站的