当前位置: 首页 > news >正文

如何在 MinGW 和 Visual Studio (MSVC) 之间共享 DLL

如何在 MinGW 和 Visual Studio (MSVC) 之间共享 DLL


.dll.a.lib 是什么?

1. .dll.a(MinGW 下的 import library)

  • 作用:链接时告诉编译器如何调用 DLL 中的函数。
  • 谁用它:MinGW 编译器(如 g++)。
  • 来源:使用 dlltool 或编译 DLL 时自动生成。

2. .lib(MSVC 下的 import library)

  • 作用:和 .dll.a 一样,用于链接阶段告诉 MSVC 编译器如何调用 DLL 中的函数。
  • 谁用它:Visual Studio(MSVC)。
  • 来源:由 lib.exe 工具或 DLL 项目自动生成。

✅ 你有哪些文件需要共享?

例如:

  • log4cpp.dll(运行时文件)
  • log4cpp.dll.a(MinGW链接时使用)
  • log4cpp.def(可选,导出函数定义)
  • log4cpp.lib(你可能需要为 VS 生成)

✅ 使用场景举例

场景所需文件编译器
MinGW 使用 log4cpp.dlllog4cpp.dll.a, log4cpp.dllg++
MSVC 使用 log4cpp.dlllog4cpp.lib, log4cpp.dllcl (VS)

✅ 如何从 .dll.a / .def 生成 .lib(供 VS 用)

方法一:你已经有 .def 文件(推荐)

lib.exe /def:log4cpp.def /out:log4cpp.lib /machine:x64

方法二:从 .dll 生成 .def(如果没有 .def 文件)

# 第一步:dump 出导出表
dumpbin /exports log4cpp.dll > log4cpp.exports.txt# 第二步:手动或用脚本生成 log4cpp.def
# 格式大致如下:
LIBRARY log4cpp.dll
EXPORTSsymbol1symbol2...# 第三步:生成 .lib
lib.exe /def:log4cpp.def /out:log4cpp.lib /machine:x64

✅ MinGW 怎么生成 .dll.a.dll

你已经在用 ADD_LIBRARY(... SHARED ...)CMAKE_DEBUG_POSTFIX "d",CMake 自动生成 .dll.dll.a

liborocos-log4cpp.dll  # 运行时库
liborocos-log4cpp.dll.a  # 供 g++ 链接用

✅ 在 VS 中使用 MinGW 编译的 DLL

你需要:

  1. 生成 log4cpp.lib(方法见上)
  2. 添加 .lib 到 VS 工程的 Linker -> Input
  3. 添加 log4cpp.dll 到可执行文件目录(或放在 PATH 下)
  4. 添加头文件路径(即 include)

相关文章:

  • 动态规划(1)(java)(面试题)三步问题
  • SAM 2 (Segment Anything ):图像与视频通用分割模型
  • Steam游戏服务器攻防全景解读——如何构建游戏级抗DDoS防御体系?
  • Android ioctl 第二个参数命令码以及BINDER_FREEZE示例
  • vue3项目中eslint.config.ts配置rules
  • 18.ArkUI Video的介绍和使用
  • ECharts 地图开发入门
  • HD Tune Pro v6.10 简体中文汉化单文件版
  • C++_数据结构_详解红黑树
  • Winform(1.Winform控件学习)
  • 每天学一个 Linux 命令(31):md5sum
  • Linux安全模块:SELinux与AppArmor深度解析
  • ✨ Apifox:这玩意儿是接口界的“瑞士军刀”吧![特殊字符][特殊字符]
  • XYNU2024信安杯-REVERSE(复现)
  • kafka与flume的整合、spark-streaming
  • 量子加密通信技术及其应用:构建无条件安全的通信网络
  • 【合新通信】浸没式液冷光模块与冷媒兼容性测试技术报告
  • 【滑动窗口+哈希表/数组记录】Leetcode 3. 无重复字符的最长子串
  • 搜索二叉树-key的搜索模型
  • nc工具!Netcat:TCP/IP瑞士军刀!全参数详细教程!Kali Linux教程!
  • 商务部就海外社交平台上发布从所谓中国“代工厂”低价购买国际知名品牌事答问
  • 中海宏洋集团4.17亿元竞得浙江绍兴宅地,溢价率20.87%
  • 广东江门公布“小客车坠海致3死”事故评估报告,司机被判三年缓五年
  • “很多中国企业竞争力独一无二”,这场对接会上他频频为协同供应链点赞
  • 特朗普称无意解雇鲍威尔,美国股债汇反弹、黄金高位下跌
  • “沉默”的智驾:余承东不喊“遥遥领先”,何小鹏连夜改口 | 电厂