第五章:程序的编译和链接
1.编译过程:程序首先需要被翻译成机器
语言,这一过程称为编译。编译器的任务是将源代码(例如C++或Java代码)转换成机器代码,后者可以直接由计算机硬件执行。
2.链接过程:编译只是将源代码转换成目
标文件,这些文件包含的是机器码和各
种符号(例如变量和函数名)。链接器将这些目标文件以及所需的库文件合并成一个可执行文件。这个过程包括解析符号引用,确定它们指向的实际地址。
3.静态链接和动态链接:在静态链接中,
所有的目标文件和库都被直接包含在最
终的可执行文件中。这增加了可执行文件的大小,但简化了程序的部署。而在动态链接中,只有对库的引用被包含在可执行文件中。实际的库文件在程序运行时被加载。