从DLL中输出LIB的方法
来源:互联网 发布:fontawesome mac 编辑:程序博客网 时间:2024/05/22 05:11
关键词:C/C++ VC GCC动态库输出连接文件
最近下载了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
- linux下添加共享库
- 重载操作符++,区别前置和后置
- (C++)cout格式化输出示例
- TerraGate版安装使用说明和IIS发布FLY
- 修改tabbar 背景图标
- 从DLL中输出LIB的方法
- C++标准程序库 学习笔记 第二章 && 第三章
- Ubuntu快捷键详细版
- 工作笔记2
- root_android_open_dev
- jquery 元素和方法解释 .
- MySQL 数据库导出SQL出现乱码解决
- PhoneGap API中文帮助文档——File(文件)
- CVS 删除 文件 (ZZ)