从DLL中输出LIB的方法
来源:互联网 发布:amtlib文件在哪 mac 编辑:程序博客网 时间:2024/06/01 10:32
http://blog.csdn.net/seniorwizard/article/details/7721071
最近下载了SQLite编译好的WIN32下的动态库,打算在开发的小软件中使用它,结果发现压缩包了只有def和dll文件,缺lib文件。虽然可以采用LoadLibrary的方式加载里面的函数,但是总感觉方便性和代码的可读性都不大好,于是想是否可以从DLL中导出lib文件呢,经过从网上搜索的信息,结果尝试,终于成功地导出lib文件,现将完成这个功能的方法和所需要的一些文件整理,并集成一个批处理文件提供出来,方便有类似需求的朋友不再走重复的道路。
我们知道,按C标准的方式生成的DLL库,无论是VC系列还是GCC系列,其DLL库在二进制上是兼容的,即可以在VC中使用GCC编译的库,反之亦然。(注意,C++方式生成的DLL库不是二进制兼容的,彼此不能相互调用)。一些著名的开源库,比如FFMPEG,SQLite等,它们各种版本的动态库和头文件都可以很容易地获得,如果能获取相应的lib文件,那对我们在开发中使用这些库是很方便的。
通过整理,从DLL文件中导出LIB文件,需要以下几个小程序,他们分别是pexports.exe,
导出def 定义文件,dlltool导出GCC所需的以.a为后缀的连接文件,LIB.exe导出VC所需的以.lib为后缀的连接文件。
建立一个批处理文件export_lib.bat,其代码如下:
pexports %1.dll > %1.def
rem export GCC .a file
dlltool --dllname %1.dll --def %1.def --output-lib %1.dll.a
rem export VC .lib file
LIB /DEF:%1.def /MACHINE:IX86
使用方法:假设我们要从sqlite3.dll中导出连接文件,在Windows的命令行工具中输入export_lib sqlite3则可以一步导出GCC和VC所需的连接文件。或者在同一目录下建一个批处理文件sqlite_lib.bat。该文件的内容为:
call export_lib sqlite3
双击sqlite_lib.bat,即可导出需要的连接文件。
工具下载地址:http://download.csdn.net/detail/seniorwizard/4413697
- 从DLL中输出LIB的方法
- 从DLL中输出LIB的方法
- 从dll中获得.lib的方法
- 根据DLL创建LIB输出库的方法
- 如何从DLL中生成LIB文件
- 如何从DLL中生成LIB文件
- 如何从DLL中生成LIB文件
- 如何从DLL中生成LIB文件
- 如何从DLL中生成LIB文件
- 设置DLL的LIB文件输出路径
- dumpbin lib.exe 从dll中导出lib文件
- VS2010 如何在输出dll的同时输出lib
- 从dll导出lib
- 从dll生成lib
- 从dll导出lib
- 从dll导出lib
- 从dll构建lib
- 从DLL生成LIB
- 8种json数据查询方式
- Source not found for Class<T>.getDeclaredConstructors0(boolean) line: not available [native method]
- 改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
- 大学里迷茫的我们,算法?框架?语言?
- 测试 framebuffer 的程序
- 从DLL中输出LIB的方法
- PowerDesigner创建数据库(mysql)
- Linux上的终端设备
- insert all 语句
- 在Java应用程序中访问USB设备
- ckeditor的取值赋值
- 网络代理神器-非常代理
- Uva 101 - The Blocks Problem//简单模拟
- MyEclipse垃圾箱设置