如何在MSVC中使用MingW编译的库?

2024-02-03

我用 MingW/MSYS 编译了几个库...生成的静态库始终是 .a 文件。 当我尝试将库与 MSVC 项目链接时,Visual Studio 抛出“无法解析的外部符号”...这意味着 .a 静态库与 MS C++ 链接器不兼容。我认为它必须转换为 MSVC 兼容的 .lib 文件。

.a 和 .lib 只是 .o 或 .obj 文件的 AR 存档,那么有什么方法可以在 MSVC 项目中使用 MingW 编译的库吗?或者我是否必须仅在一个编译器/链接器中编译/链接所有内容 - 仅 MSVC/仅 MinW? MingW 编译器据说与 MSVC 兼容。

我读了一些关于这个主题的帖子,但他们大多说将文件重命名为 .lib 应该可以完成工作,但不幸的是它对我不起作用。

我尝试链接的库是用 C 编写的。

MSVC 链接器抛出如下错误:

error LNK2019: unresolved external symbol "int __cdecl openssl_call(struct ssl_State *,int,int,int)" (?openssl_call@@YAHPAUssl_State@@HHH@Z) referenced in function _main MyAPP.obj

...还有 4 个相同的错误,涉及从我的应用程序调用的其他函数。

感谢您的任何建议。


基于此错误,您发表了评论:

错误 LNK2019:无法解析的外部 符号“int __cdecl openssl_call(结构 ssl_State *,int,int,int)" (?openssl_call@@YAHPAUssl_State@@HHH@Z) 在函数 _main MyAPP.obj 中引用 所有其他 4 个错误仅与 其他函数名称

尝试放置extern "C"围绕 openssl 的包含文件。例如:

extern "C" {
include "openssl.h"
}

using 外部“C” http://msdn.microsoft.com/en-us/library/0603949d%28VS.80%29.aspx将指示编译器这些函数正在使用 C 链接,而不是 C++,这将阻止它执行名称修改 http://blogs.msdn.com/vijay/archive/2009/10/02/what-is-name-decoration-or-name-mangling.aspx关于功能。因此它将在库中查找函数 openssl_call 而不是 ?openssl_call@@YAHPAUssl_State@@HHH@。

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

如何在MSVC中使用MingW编译的库? 的相关文章

  • Web UI 中的 .Result 出现死锁

    我正在阅读以下主题http blog stephencleary com 2012 07 dont block on async code html http blog stephencleary com 2012 07 dont bloc
  • 将 2D 数组映射到 1D 数组

    我想用一维数组来表示一个二维数组 函数将传递两个索引 x y 和要存储的值 这两个索引代表一维数组的单个元素 并相应地设置它 我知道一维数组需要具有 arrayWidth arrayHeight 的大小 但我不知道如何设置每个元素 例如 如
  • 处理 LINQ sum 表达式中的 null

    我正在使用 LINQ 查询来查找列的总和 并且在少数情况下该值有可能为空 我现在使用的查询是 int score dbContext domainmaps Where p gt p SchoolId schoolid Sum v gt v
  • 使用 C# 使用应用程序密码登录 Office 365 SMTP

    在我们的 Office 365 公司帐户中实施两步身份验证之前 我的 C WPF 程序已成功进行身份验证并发送邮件 我使用了 SmtpClient 库 但现在我必须找到另一个解决方案 因为它不再起作用 我找不到任何使用 O365 应用程序密
  • 字节到二进制字符串 C# - 显示所有 8 位数字

    我想在文本框中显示一个字节 现在我正在使用 Convert ToString MyVeryOwnByte 2 但是 当字节开头有 0 时 这些 0 就会被删除 例子 MyVeryOwnByte 00001110 Texbox shows g
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • 使用 VSTO 更改 Outlook 设置

    我刚刚花了大约 4 个小时试图弄清楚如何以编程方式检索 设置 Microsoft Outlook 2010 的 Outlook 设置 我所说的 设置 是指文件 选项 邮件下的设置 我想做的是检索用户设置的设置列表 自动化我们每天需要在某些消
  • C++ 在 Vector 中使用不可分配的对象

    我想将对象列表存储在std vector 但对象包含引用且无法分配给 但是 我可以复制构造该对象 我能想到的唯一选择是使用指针来包装对象并在需要分配指针时重新设置指针 但这样做的语法会显着降低可读性 特别是在使用迭代器时 我更喜欢另一种选择
  • Qt中正确的线程方式

    我的图像加载非常耗时 图像很大 并且在加载时也完成了一些操作 我不想阻止应用程序 GUI 我的想法是在另一个线程中加载图像 发出图像已加载的信号 然后用该图像重绘视图 我的做法 void Window loadImage ImageLoad
  • 为什么以下代码不允许我使用 fgets 获取用户输入但可以使用 scanf?

    这是一个更大程序的简短摘录 但该程序的其余部分无关紧要 因为我认为我能够隔离该问题 我怀疑这与我使用 fgets 的方式有关 我读过 最好使用 fgets 而不是 scanf 但我似乎无法让它在这里正常工作 当我使用以下代码时 程序不会给我
  • 抽象类和接口之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 接口与基类 https stackoverflow com questions 56867 interface vs base class 我不明白抽象类和接口之间的区别 我什么时候需要使用哪种字体
  • C++ Primer 5th Edition 错误 bool 值没有指定最小大小?

    bool 的最小大小不应该是 1 个字节吗 这有点学术性的东西 尽管它们会转换为数字 并且 与其他所有事物一样 它们最终将基本上由计算机内存中的数字表示 但布尔值不是数字 你的bool可以取值true 或值false 即使您确实需要至少 1
  • 如何在 C++ 中使用 PI 常数

    我想在一些 C 程序中使用 PI 常数和三角函数 我得到三角函数include
  • 编写专门用于类及其子类的函数模板

    我正在尝试编写一个函数模板 一个版本应该用于不满足另一版本标准的所有类型 当参数是给定类的基类或该类本身时 应使用另一个版本 我尝试过超载Base 但是当类派生自Base 他们使用通用的 而不是特定的 我也尝试过这种 SFINAE 方法 s
  • 通过 MSBuild 调用 cl.exe 时无限期挂起

    我正在尝试在我的 主要是 C 项目上运行 MSBuild 想象一下一个非常庞大的代码库 Visual Studio 2015 是有问题的工具集 Windows 7 SP1 和 VS 2015 更新 2 即使使用 m 1 从而迫使它仅使用一个
  • 便携式终端

    有没有办法根据所使用的操作系统自动使用正确的 EOL 字符 我在想类似的事情std eol 我知道使用预处理器指令非常容易 但很好奇它是否已经可用 我感兴趣的是 我的应用程序中通常有一些消息 稍后我会将这些消息组合成一个字符串 并且我希望将
  • 如何使复选框不可选择?

    我想知道你是怎么做的CheckBox在c 中无法选择 我认为这会是类似 SetSelectable false 之类的东西 但我似乎看不到该方法 I found CanSelect但这似乎是只读属性 您可以设置自动检查 http msdn
  • C++0x 中的新 unicode 字符

    我正在构建一个 API 它允许我获取各种编码的字符串 包括 utf8 utf16 utf32 和 wchar t 根据操作系统 可能是 utf32 或 utf16 新的 C 标准引入了新类型char16 t and char32 t没有这么
  • Windows 上 libcurl 的静态库[重复]

    这个问题在这里已经有答案了 如何将此库 libcurl 静态链接到 exe 我努力了 disable share enable static 没有帮助 我使用的是MingW32 有没有一种简单的方法来静态链接这个库 这样我的应用程序就不再有
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode

随机推荐

  • C#:当一个字段可以是不同类型时反序列化 JSON

    我正在与返回包含 true false 或字符串数 组数组的 JSON 的 API 进行通信 我希望反序列化此 JSON 并将布尔值 如果有 存储在数据类型 bool 的名为 Success 的类字段中 并将数组 如果有 存储在自定义数据类
  • 建议使用 postgres 工具来查找模式和数据之间的差异

    各位 任何人都可以建议我使用 Linux 的 postgres 工具来查找2个给定数据库之间的差异 我尝试使用 apgdiff 2 3 但它给出了模式而不是数据方面的差异 但我两者都需要 提前致谢 比较数据并不容易 尤其是当您的数据库很大时
  • 重写 Objective-C 中的可变参数方法

    在 Objective C 中子类化时 在可变参数方法的情况下如何将调用转发到超类 我应该用什么来替换 下面发送我得到的所有对象 void appendObjects id firstObject super appendObjects 你
  • 如何在 Android 应用程序的 Activity 之间传递数据?

    我有一个场景 通过登录页面登录后 会出现注销button在各个activity 点击时sign out 我将通过session id登录用户的注销 谁能指导我如何保持session id所有人都可以使用activities 这种情况的任何替
  • 在 Python 中调用函数列表的惯用方式是什么?

    我有一个回调函数列表 当事件触发时我需要调用这些函数 这是惯用的Python吗 def first callback m print first m def second callback m print second m lst firs
  • 在状态计算中“不断转动曲柄”的有效方法

    我有一个有状态的进程 被建模为i gt RWS r w s a 我想给它一个输入cmds i 目前我做的是批发 let play runGame theGame go where go finished go v n cmds do end
  • 位置相关代码和位置无关代码有什么区别? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 位置相关代码和位置无关代码有什么区别
  • 获取下 N 个最近的地理点

    我在我的 Android 应用程序中有一个包含地理点的数据库表 纬度和经度是十进制度值 大约 1000 点 我需要选择距离某个给定地理点最近的 20 个点 我在 Stackoverflow 找到了如何计算两个地理点之间的距离的答案 并且非常
  • 使用 Capybara 存根浏览器时间和时区

    我有一个 JavaScript 组件 例如日期选择器 它很大程度上依赖于 当前系统时间 当前系统时区 在 Ruby 和 Capybara 中 可以在诸如Timecop https github com travisjeffery timec
  • iPhone core蓝牙中央管理器发送数据到外设

    我想将数据从 iPhone 发送到被发现并连接的蓝牙设备 我指的是this http weblog invasivecode com post 39707371281 core bluetooth for ios 6 core blueto
  • 方形网格 - XML

    在我的研究中 我必须编写一个 Android 应用程序来从气象站检索天气数据 这些将显示在块中 这些块将分成 4 列和 2 行 所以我想创建一个 4 列 2 行的方形网格来提供块 有人可以提供解决方案来帮助我创建这个网格吗 有很多选择 1
  • 为什么这段代码在 Windows 和 Linux 上打印出不同的结果?

    此代码在 Windows 和 Linux 之间打印不同的字符串 test py print join str i for i in range 10000 平台 x86 64 Linux 4 4 0 17763 微软Python版本 3 7
  • 在 C# 中将字节转换为二进制字符串

    在 c 中我正在转换byte to binary 实际答案是00111111但给出的结果是111111 现在我真的需要显示前面的 2 个 0 谁能告诉我该怎么做 我在用 Convert ToString byteArray 20 2 字节值
  • 适用于更大图像的 Android Image Getter

    我已使用所有标准网络相关代码来获取有关的图像45KB to 75KB但所有这些方法都失败了 对于大约的文件来说工作正常3 5KB图像的大小 我怎样才能实现下载图像45 75KB为了在 Android 中的 ImageView 上显示它们以进
  • 在 SpriteKit 项目中使用精灵图集、纹理图集或资源目录

    Apple 在 SpriteKit 项目中推荐的资源组织方式在引擎的历史进程中发生了很大变化 旧方法中也存在缺陷 阻碍了这些实践的实施并需要解决方法 SO 上的旧问答充满了过时的信息或被有关处理不再存在的错误的信息所混淆的信息 需要在 SO
  • 对一维数据进行最佳聚类? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有人有一篇论文解释如何CKmeans 1d dp http cran r project org
  • 一个队列上有多个 Azure Webjob 实例

    我正在寻找一种方法让我的 azure webjob 的多个实例一起运行并清除我的队列 我们应用程序的功能之一是减少用户在其网站上的每次页面浏览的信用 由 ajax 调用 目前 我们有近 600 个此类网站 其网站的每个页面视图都会生成一个调
  • 将图标添加到从右到左的 ListView 项目会导致图标在 C# WinForms 中翻转

    我有一个ListView Its RightToLeft属性设置为Yes和它的RightToLeftLayout被设定为True The ListView填充了目录中的文件 在我的代码中 我使用以下命令获取文件的适当图标System Dra
  • Spring Data Neo4j 4 和可分页@QueryResult

    我正在尝试介绍Pageable支持我通过 SDN 4 存储库方法进行的自定义 Cyper 查询 Query value MATCH parentD CONTAINS gt childD Decision ru CREATED BY gt u
  • 如何在MSVC中使用MingW编译的库?

    我用 MingW MSYS 编译了几个库 生成的静态库始终是 a 文件 当我尝试将库与 MSVC 项目链接时 Visual Studio 抛出 无法解析的外部符号 这意味着 a 静态库与 MS C 链接器不兼容 我认为它必须转换为 MSVC