一、CC
1、工作目录/data/aifront/cpl/others/demo01
<<hello.c>>
#include <stdio.h>
main()
{
printf("Hello World !\n");
}
执行命令
[/data/aifront/cpl/others/demo01]CC hello.c
[/data/aifront/cpl/others/demo01]a.out
Hello World !
二、CC分解动作
-P 仅通过预处理程序编译源,输出到 .i 文件
[/data/aifront/cpl/others/demo01]CC -P hello.c -o tmp.i
-S 编译并仅生成汇编代码 (.s)
[/data/aifront/cpl/others/demo01]CC -S tmp.i -o tmp.s
-c 仅编译 - 生成 .o 文件,禁止链接
[/data/aifront/cpl/others/demo01]CC -c tmp.s -o tmp.o
链接
[/data/aifront/cpl/others/demo01]CC tmp.o -o bin
三、make
<<makefile>>
/data/aifront/cpl/others/demo01/makefile
COMMAND_C=CC -m32 +w -O3 -g
COMMAND_L=CC -m32
main:step_1
$(COMMAND_L) tmp.o -o bin
step_1:
$(COMMAND_C) -c hello.c -o tmp.o
clean:
rm -rf *.o
执行编译命令
[/data/aifront/cpl/others/demo01]make
CC -m32 +w -O3 -g -c hello.c -o tmp.o
"hello.c", 第 3 行: 警告: C++ 不支持在函数 main() 中使用隐式的 int.
检测到 1 警告.
CC -m32 tmp.o -o bin
运行编译好的程序
[/data/aifront/cpl/others/demo01]bin
Hello World !
清理编译时的临时文件
[/data/aifront/cpl/others/demo01]make clean
rm -rf *.o
只编译出tmp.o文件
[/data/aifront/cpl/others/demo01]make step_1
CC -m32 +w -O3 -g -c hello.c -o tmp.o
"hello.c", 第 3 行: 警告: C++ 不支持在函数 main() 中使用隐式的 int.
检测到 1 警告.