C/C++文件 ->可执行文件需4步:
1.预处理:处理include、宏定义、条件编译,输出 .i 文件
2.编译:把C翻译成汇编
3.汇编:汇编翻译成机器代码(OBJ文件)
4.连接:将上面生成的OBJ和库的OBJ连接,生产可执行文件
编译和运行:
$ sudo gcc -o sh sheep.c #输出了可执行文件
$ ./sh #运行可执行文件
$ sudo gcc -v -o sh sheep.c #显示编译细节
$ sudo cpp -o sheep.i sheep.c #预处理,输出了 sheep.i
$ sudo gcc -Wall sheep.c #看警告
连接器选项:
加-nostartfiles不连接系统标准启动文件,编译bootloader、内核时用。
加-nostdlib不连接系统标准启动文件和标准库文件,编译bootloader、内核时用。
$ find -name "sheep.c" #查找文件
$ grep "sheep" * -nR #查找含有某个字符串的文件
vim makefile:
目标: 依赖1 依赖2...
命令
当前目标下执行sudo make
打补丁:
$patch -px < ../补丁文件 #px的x是忽略补丁指示的第x个目录