您的位置:首页 > 其它

程序的执行过程

2017-04-12 21:00 99 查看
编译:进行语法检查、函数分配空间,将各个函数编译成二进制码,按照特定目标文件格式生成目标文件。

连接:把程序中各个文件编译生成的目标文件连接起来,同时还要同系统提供的资源(如函数库)连接成为一个整体,得到可执行文件。

运行:执行连接好的程序。

重定位:把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,也就是说在装入时对目标程序中指令和数据的修改过程。

实现链接的方式有三种(链接时间不同): 1.静态链接 2.动态链接(装入时)     3.动态链接(运行时)

1 静态链接库的优点 

 (1) 代码装载速度快,执行速度略比动态链接库快; 

 (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。 

不足:(1) 使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费;

2 动态链接库的优点 

 (1) 更加节省内存并减少页面交换;

 (2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;

 (3) 不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;

 (4)适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: