一、C/C++的编辑编译与链接
打代码的过程就是编辑的过程。编辑完程序后,需要两个步骤:编译和链接,把程序变成我们需要的可执行程序。
编译过程(包括预处理、编译和汇编(test.s到test.o))最终生成。o文件在linux系统和。windows系统上的obj文件。该过程将添加包含在。cpp文件添加到。cpp文件,大概意思是用头文件中的具体内容替换include,但是不需要具体的实现内容。
形如:include<>,是在系统指定目录中查找头文件,在linux系统中指定的默认目录包括:usr/include;usr/local/include;
/usr/aarch64-linux-gnu/include
形如:include””,是在引号里面的目录中查找头文件,如果寻找不到的话在去默认目录中查询。
该过程的实现:例如有三个文件,main.cpp,test1.cpp,test1.hpp在同一个文件夹下,具体内容如下:
上面三个文档位于同一个文件夹下面,则使用g++的编译方式为:
g++ -c main.cpp
g++ -c test1.cpp
上面看似没有用到test1.hpp,如果把test1.hpp去除,则编译部分无法完成,而去除test1.cpp对main的编译没有没有影响。按照上面所说,也可以把test1.hpp移动到系统默认文件中。
3. 链接就是把目标文件、目标文件所需要的库文件,其他目标代码(指所依赖的其他.o文件—可以是编译中生成的,不是源文件)等进行组织,生成可执行文件的过程,在linux系统上生成没有后缀的可执行文件,在windows系统中生成.exe文件。