【QT/MinGW/.a->.lib】如何将一个用QT的MingGW编译dll项目出的dll文件导出一份.lib文件给其他项目链接动态库用
如果你也是只有.dll和.a文件,而在寻觅.lib文件到底该如何生成出来,那么本文就适合你。
首先我们开一个QT的C++DLL项目,然后选择用MinGW构建。
构建出来的成果应该类似下面这些文件
最简单的会有一个.o文件,一个.dll文件和一个.a文件。
随后我们编写一份.def文件,名字一般就是dll的名字,格式如下
LIBRARY FAAC
EXPORTS
faacEncGetVersion
faacEncGetCurrentConfiguration
faacEncSetConfiguration
faacEncOpen
faacEncGetDecoderSpecificInfo
faacEncEncode
faacEncClose
这上面,第一行的FAAC是你的dll文件名,不过不用带后缀
然后EXPORTS之后的那几行都是你要导出的函数名称。
之后你可以在你的QT安装目录下搜索你用的MinGW所在的目录下的dlltoll.exe程序
比如我用MinGW是mingw530_32,那么我自行搜索找到的路径就是E:\Qt\Qt5.9.0\Tools\mingw530_32\bin\dlltool.exe
找到你的路径后,打开cmd写入以下命令
E:\Qt\Qt5.9.0\Tools\mingw530_32\bin\dlltool.exe -d FAAC.def -l FAAC.lib -D FAAC.dll
FAAC换成你的和DLL一样的名字,然后生成后的结果就如下图所示
你想要的.lib文件就这么出现了,完。