首页 > 编程知识 正文

lib文件夹里放的都是什么,lib是什么含义

时间:2023-05-04 21:18:18 阅读:164408 作者:3175

lib是表示静态数据连接库的文件名后缀,在windows操作系统中用作链接器、函数或子过程,相当于Linux上的. a或. o、 so文件。

语义LIB文件包含函数调用的信息,但数据库包含静态数据库. LIB文件和动态数据库. dll文件。

静态编译静态编译将导出声明和实现放在lib中。 编译后,所有代码都嵌入主机程序中。

静态编译的优点是,编写的程序不需要调用DLL或加载函数,可以直接作为程序的一部分使用。

静态编译的缺点也很明显,使用静态编译的程序的体积比动态编译大。 这是因为函数的实现作为程序代码的一部分内置。

编译动态LIB文件,相当于c语言的h文件,不将安装过程嵌入程序自身,而是函数的导出部分的宣言。 编译后,只需将函数地址保存在主机程序中。 执行到调用函数是调用DLL加载函数,实现函数的具体操作。

LIB文件是私有的,除非有专用的LIB显示工具,否则无法显示LIB文件中函数的特定实现说明

有几个选择:

1、在存在同名dll文件的情况下,可以在vc附带的depends上看到dll接口

2、用msdn查看使用的该lib中包含的函数名,查找对应的头文件。 头文件包含整个lib的函数声明。 可能不完整。

3、浏览vc或其他工具安装目录下的src目录,查看函数代码

4、如何使用lib文件:

在对象/库模块中使用完整路径名;

将*.Lib放入2-VC的lib目录中

修改项目设置链接-输入的地址库路径,并加入到您的目录中。

LIB文件是与DLL文件类似的库文件,由其他程序调用,无法直接打开。

5、要查看LIB和DLL文件,需要使用OLLYDBG的LOADDLL插件反汇编和显示每个函数的过程。

内容的lib文件是obj文件的集合。 当然,它还包含其他辅助信息,以帮助编译器准确地找到相应的obj文件。 我们可以在tlib.exe(TC2.0下的根目录)中操作lib文件。 您可以使用tlib命令将自己生成的obj文件添加到lib文件中,删除lib文件中的obj文件,或提取内部obj文件。 了解了lib文件的大致结构和对其的具体操作后,在学习c语言的过程中,就会有更多的切入点来研究c语言的具体实现。

与dll的区别(1)编译时需要lib,运行时需要dll。

有lib就足够完成源代码的编译了。

有dll就足够运行动态连接的程序了。

在开发和调试阶段,当然最好一切都有。

)2)典型的动态库程序包括lib和dll文件。 lib文件必须在编译时连接到APP应用程序,但dll文件将在运行时调用。 如果存在dll文件,则对应的lib文件一般是一些索引信息,并且特定实现在dll文件中。 如果只有lib文件,则此lib文件是静态编译的,包含索引和实现。 静态编译的lib文件有一个优点。 安装用户时不需要挂动态库。 但是,还有一个缺点,就是APP比较大,动态库失去了灵活性,升级时必须同时发布新的APP应用程序。

)3)对于动态库,有两个文件。 一个是库).LIB )文件的输入,另一个是DLL文件。 导入库文件包含由DLL导出的函数的名称和位置,而DLL包含实际函数和数据。 APP应用程序使用LIB文件链接到所需的DLL文件,并且不会将库中的函数和数据复制到可执行文件中,因此它包含以DLL调用的函数的存储器地址,而不是APP应用程序可执行文件中调用的函数代码这样可以通过链接在执行一个或多个APP应用程序时调用的程序代码和函数代码来节省内存资源。 从上面的说明中可以看出,DLL文件必须与APP应用程序一起发布。 如果不发出,APP应用程序将出现错误。

加载方法

直接加入VC打开文件视图页,选择项目名称,右键单击,选择" Add Files to Project "菜单,然后在弹出的文件对话框中选择要加入DLL的LIB文件即可。

打开项目的“Project Settings”菜单,选择“Link”,然后将其设置为在“Object/LIBrary modules”下的文本框中输入DLL的lib文件。

程序中添加了预编译指令#pragmacomment(LIB,' *.lib ' )。 此方法的优点是可以使用条件预编译指令链接不同版本的lib文件。 这是因为,在调试方法中,生成的LIB文件是调试版本,例如Regd.lib; 在Release方法中,生成的LIB文件是Release版本,如Regr.lib。

在APP应用程序加载了DLL的LIB文件后,还必须包含与DLL相对应的头文件*.h。 此头文件提供了DLL中定义的函数原型并声明了该函数。

p> 生成工具

操作系统:Win7。

开发软件:VS2010。

生成步骤

建立win32控制台工程MyLib(或者win32项目中下的静态库),添加mySub.h文件以及mySub.cpp文件。

编写mySub.h文件代码,#ifndef _MYSUB_H。

编写mySub.cpp文件代码。

由于在工程中,没有main()函数,所以编译可能会出错。这时,点击工程,并选择工程属性,出现下图,选择静态链接库即可。

这时候再按快捷键 F7,build solution即可产生lib文件。在Debug中只生成.lib文件。

lib文件的使用

新建一个.cpp文件myLibTest.cpp(用于测试)。

点击工程,并选择工程属性,将附加库目录新增包含刚才生成.lib的目录。

将工程项目属性中的配置类型改回至原来默认的应用程序(.exe),并执行myLibTest.cpp。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。