1. 源程序——经过预处理的源程序——目标程序——可执行程序(以C语言为例)

源程序.c:就是我们写的代码

经过预处理器的预处理变成

经过预处理的源程序.i:在编译之前进行处理宏定义,文件包含,条件编译等

经过编译器(比如gcc)的编译变成

目标程序.o:就是计算机能看懂的,由0和1组成的机器指令码组成

经过连接器链接函数调用变成

可执行程序.exe:计算机可以独立执行它了

  1. gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译
  2. 常用命令:gcc demo.c -o demo
  3. 程序库:包含了一些通用函数的数据和二进制可执行机器码的文件,其单独不能够运行,但是如果将其与其他的可执行程序结合起来就可以执行了

静态库:是在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行的

动态库:是在执行程序启动时加载到执行代码中

  1. 静态库与动态库区别

动态库只有在使用它的程序执行时才被链接使用,而不是将需要的部分直接编译入可执行文件中,并且一个动态库可以被多个程序使用故可称为共享库,而静态库将会整合到程序中,因此在程序执行时不用加载静态库。 从而可知,链接到静态库会使你的程序臃肿,并且难以升级,但是可能会比较容易部署。而链接到动态库会使你的程序轻便,并且易于升级,但是会难以部署。

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/xinyounuanyang/p/13955521.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!