obj, lib, dll, exe
2008-01-11 09:18
281 查看
lib是和dll对应的。
lib是静态的库文件,dll是动态的库文件。
所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行
你的exe的时候不再需要lib。
所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运
行。
lib, dll, exe都算是最终的目标文件,是最终产物。而c/c++属于源代码。源代码和最终
目标文件中过渡的就是中间代码obj,实际上之所以需要中间代码,是你不可能一次得到目
标文件。比如说一个exe需要很多的cpp文件生成。而编译器一次只能编译一个cpp文件。这
样编译器编译好一个cpp以后会将其编译成obj,当所有必须要的cpp都编译成obj以后,再统
一link成所需要的exe,应该说缺少任意一个obj都会导致exe的链接失败。
1.obj里存的是编译后的代码跟数据,并且有名称,所以在连接时会出现未解决的外部符号一说。当连成exe后便不存在名称的概念了,只有地址。lib就是一堆obj的组合。
2.理论上可以,但实际中通常用lib。
3.编译器会默认链接一些常用的库,其它的需要你自己指定。
lib是静态的库文件,dll是动态的库文件。
所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行
你的exe的时候不再需要lib。
所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运
行。
lib, dll, exe都算是最终的目标文件,是最终产物。而c/c++属于源代码。源代码和最终
目标文件中过渡的就是中间代码obj,实际上之所以需要中间代码,是你不可能一次得到目
标文件。比如说一个exe需要很多的cpp文件生成。而编译器一次只能编译一个cpp文件。这
样编译器编译好一个cpp以后会将其编译成obj,当所有必须要的cpp都编译成obj以后,再统
一link成所需要的exe,应该说缺少任意一个obj都会导致exe的链接失败。
1.obj里存的是编译后的代码跟数据,并且有名称,所以在连接时会出现未解决的外部符号一说。当连成exe后便不存在名称的概念了,只有地址。lib就是一堆obj的组合。
2.理论上可以,但实际中通常用lib。
3.编译器会默认链接一些常用的库,其它的需要你自己指定。
相关文章推荐
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- 命令行编译程序 MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe)
- OBJ、LIB、DLL与EXE之间的关系
- obj,lib,dll,exe的关系
- obj,lib,dll,exe的关系
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe)
- .obj, .lib, .dll, .exe的关系
- .obj, .lib, .dll, .exe的关系(附:lib和DLL的区别)
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- .obj, .lib, .dll, .exe的关系
- 命令行编译程序 MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe)
- obj,exe,lib,dll 简单整理
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 攻略
- 【转】.obj, .lib, .dll, .exe的关系
- obj,lib,dll,exe
- .obj, .lib, .dll, .exe的关系
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记