程序的编译链接过程
作为一个程序开发小白,用惯了Windows系统上的开发工具,只要会用debug,就会使用windows系统上的大部分开发工具。现在要去华为实习,不得不学习linux系统开发,不得不学习linux开发最关键的文件——makefile,面对g++命令,看着那些简短的解释,真的感觉到“所有字都认识,但是组合起来就不知道啥意思”的绝望。通过男朋友大神(他是一个把我从内燃机方向硬生生拉往计算机编程的恶魔)讲解程序的编译链接过程,才恍然大悟,下面把内容总结如下:
1、所有的编译型语言的源代码都不能在机器上直接运行,需要经过编译、链接等过程生成可执行的文件,计算机才能执行源代码中的函数。
2、程序的编译过程总体可分为编译和链接两大过程。其中编译又分为编译和汇编两个阶段。
编译:是将文本形式的源代码转成机器可读的汇编代码,并生成.o中间文件,所用的命令是
g++ -c 源文件
其中c是compile的意思。在此过程中,对程序员写的代码进行了语法和词法的分析,如果出现错误,则编译出错。
链接:链接程序是把目标文件、操作系统的启动代码、用到的库文件进行整合,生成可执行的文件。所用命令是
g++ -o 目标文件 所有依赖的.o文件
该过程中由于把操作系统的启动代码进行了整合,所以不同的操作系统如果其启动代码不相同的话,所生成的可执行文件不能兼容。
最后在控制台输入
./可执行文件
就能看到程序执行的结果啦啦啦啦!
关于程序的编译链接过程详情请看下面的博文:
程序的编译链接过程
c语言的编译链接过程详解