博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译和链接
阅读量:2354 次
发布时间:2019-05-10

本文共 535 字,大约阅读时间需要 1 分钟。

一般来说,无论是C、C++,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。

然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。

 

编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。

 

链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File)。

 

在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。

 

 

转载地址:http://bvutb.baihongyu.com/

你可能感兴趣的文章
Type mismatch in key from map: expected .. Text, received … LongWritable
查看>>
详解Java内存机制(堆与栈)的分配
查看>>
The Small Files Problem
查看>>
Hadoop Archive解决海量小文件存储
查看>>
Hadoop SequenceFile Writer And Reader
查看>>
Custom KeyValueTextInputFormat
查看>>
Hadoop0.20+ custom MultipleOutputFormat
查看>>
Eclipse:Run on Hadoop 没有反应
查看>>
最小堆
查看>>
Hadoop用于和Map Reduce作业交互的命令
查看>>
Hadoop MapReduce Job性能调优——修改Map和Reduce个数
查看>>
X Chen笔记----Centos6.9安装rsycn文件同步
查看>>
X Chen笔记----Ubuntu关闭防火墙
查看>>
移动固态硬盘中安装Ubuntu18.04,并且运行于其他电脑
查看>>
记录修改Ubuntu用户名和密码
查看>>
关于最小生成树的Prim算法和Kruskal算法
查看>>
linux常用命令
查看>>
每天一个linux命令(13):less 命令
查看>>
java读写分离
查看>>
svn + jenkins + maven 实现java环境的自动化构建和部署
查看>>