DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

如何在vc中使用mingw编译出来的动态库和静态库

mingw编译出来的静态库后缀名为.a,编译出来的动态库的导入库后缀名为.dll.a,而在windows下后缀名为.lib的库可能是静态库也可能是动态库的导入库。

mingw编译出来的动态库的导入库可以直接在vc中直接使用,例如

#pragma comment(lib, "libx264.dll.a")

这样你就不需要生成一个.lib后缀的动态库的导入库了,网上也有如何从.dll生成.lib的方法。

如果链接了动态库的导入库libpthread.dll.a,你发布的应用程序就要带上pthread的dll。

使用静态库的好处是发布的应用程序组件模块里不需要带上相关的dll,如果要使用mingw编译出来的静态库,可以如下:

#pragma comment(lib, "libx264.a")

但是仅仅链接这么一个静态库是不够的,你还需要链接

libgcc.a

libmingwex.a

你可能还需要链接libmsvcrt.a

否则会报一堆错误:error LNK2001: 无法解析的外部符号

上面的这些库在C:\MinGW\lib目录或子目录下面可以找到。

链接这些库的原因是mingw使用的gcc编译器和vc编译器之间存在差异

转自:https://blog.csdn.net/qiuchangyong/article/details/19119997

posted on   DoubleLi  阅读(268)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2023-04-02 [.NET] ConfuserEx脱壳工具打包
2023-04-02 .Net零基础逆向教程 第三课(壳与作业)
2023-04-02 给大家推荐一个.Net的混淆防反编译工具ConfuserEx
2023-04-02 .net反编译的九款神器
2023-04-02 ConfuserEx 脱壳软件 使用教程
2023-04-02 开源.net 混淆器ConfuserEx介绍
2023-04-02 使用ConfuserEx加密混淆程序以及如何脱壳反编译
点击右上角即可分享
微信分享提示