如何在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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2016-08-16 C++/C语言的标准库函数与运算符的区别new/delete malloc/free
2016-08-16 View与Model绑定注意事项 (视图无数据显示)
2016-08-16 (五)Qt实现自定义模型基于QAbstractItemModel
2016-08-16 (四)Qt实现自定义模型基于QAbstractTableModel (一般)
2016-08-16 (三)使用预定义模型QDirModel的例子
2016-08-16 (二)使用预定义模型 QStringListModel例子
2016-08-16 (一) Qt Model/View 的简单说明