c++/c通常所说的高级程序语言,但是计算机对这些语言并不能理解,因此需要进行一系列转换,将高级语言转化为机器能识别的语言,这个过程就称为编译过程。 但是在现代程序开发中,都是基于已有的相关轮子,进行二次开发,即可能会利用相关库文件,如我们常用的include<math.h> 即包含相关头文件(这种写法典型的c的写法),这里的math.h就称为库文件,可以将这类文件编译为静态库和动态库。静态库即在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态(链接)库。静态库在Linux通常为.a文件。程序在连接运行时每调用一次就会调用一次,这样会导致代码的冗余。动态库即为程序在开始运行后调用库函数时才被载入,这种库独立于现有的程序,其本身不可执行。动态库再Linux中通常为.dll文件,程序在运行时进行一次调用。c++从源文件到二进制文件,整体流程如下。
g++编译工具,通过不同指令可以生成中间文件。
实验例子:
.cpp文件