操作系统---命令行操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LSYtop/article/details/51227610

 接触gcc,预编译 (gcc -E), 编译 (gcc), 汇编 (as),和 连接 (ld)。


假如有一个源程序xxx.c

1.在命令行下使用 通过              gcc   xxx.c


2.编译器会生成一个可执行文件a.out ,  可以命令行 中输入   a.out 


3.每次进行编译时,都会出现一个新的a.out 将之前的覆盖


4.可以用- o 来完成对该文件起名字。  命令行输入  gcc -o  xxx   xxx.c


5.编写一个程序,通过编辑软件例如notepad++,程序保存为yyy.h  


6.而编译器是用来编译,c程序的,所以要把yyy.h 加入到xxx.c中进行编译


7.就有了编程时候出现的头文件  #include “yyy.h”  


8.加进去以后,再编译一次看一下有没有错误,命令行输入   gcc  xxx.c


9.这样编译的时候其实是将两个部分合起来的,而预编译也可以通过命令去看 , 输入   -E    (预编译)


10.预编译的作用有三,一、把include了的文件复制到到.c下     二、实际的内容,代替了代码预编译中的那条语句    三、调用宏的地方使用宏替换


11.编译只是其中的一个过程,将自己写的代码转换为汇编,同时查看有无错误语法存在。


12.as是将汇编语言转换为机器可以识别的机器语言的,汇编还是不能够在CPU上直接使用的,命令行中用-c 将.c 的文件转换为.o  的文件(目标文件)  


13.连接的过程是将这些不同的目标文件,即.o 的文件组合成可执行文件


14. 通过连接将两个目标文件进行连接 ,命令行输入     gcc -o xxx  xxx.c   yyy.o   (将两者连接起来,创建一个可执行文件xxx)


以上就完成了编译的过程,程序可以正常运行还需要保证其他非语法错误的问题。





没有更多推荐了,返回首页