以前在Linux下gcc一个源文件直接就gcc + xxx.c ,然后执行就ok了。
最近通过了进一步的学习才知道原来这个过程其实是包括了四个步骤的。
1、预编译:
也就是处理由#开头的命令,gcc + -E +源文件 + -o + 你想生成的新的文件名(xxx.i)。
例如:gcc -E hello.c -o hello.i
2、编译:
把生成的预编译文件编译成汇编文件。
gcc -S hello.i -o hello.s
3、汇编:
将汇编代码转换成机器码。
gcc -c hello.s -o hello.o
4、链接:
这是最后一步了 ,当你在程序中使用一些函数时,为了实现这些函数,其实它会连接到一些包含这些函数的库(xxx.o),来实现完整的功能.
-------------------------------------------------------------------------------分割线——gdb基本命令使用---------------------------------------------------------------------------
在linux中gdb 是一个不错的调试程序的方法;
进入gdb步骤:
1、gcc -源文件.c -g -o test
2、gdb test
3、然后主要就是你可以把程序化成一小块一小块的,这样方便来找错误;
你可以通过设置断点,查看断点,删除断点,进入函数,跑动程序,打印结果等等操作来分步骤找错误;