编译器主要用来把源代码编译成目标文件,链接器则用来把目标文件和库文件链接成可执行文件。
编译器对源文件进行编译,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CPP转换成OBJ文件。链接器进行链接的时候,首先决定各个目标文件在最终可执行文件里的位置,然后访问所有目标文件的地址重定义表,对其中记录的地址进行重定向,然后遍历所有目标文件的未解决符号表,并且在所有的导出符号表里查找匹配的符号,并在未解决符号表中所记录的位置上填写实现地址。最后把所有的目标文件的内容写在各自的位置上,再作一些另的工作,就生成一个可执行文件。