例:
gcc hello.c -o hello // 指定编译出来的文件名为 hello
make -f ./scripts/Makefile.build // 这里的 Makefile.build 就是一个其它文件名书写的 Makefile
gcc test.c -o test -D CONFIG_MODE_OUTPUT // 执行 gcc 过程中给程序中添加宏定义
LIBPATH := -lgcc -L /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm // 数学库 LIBPATH 所在目录
-nostdlib:
不链接系统标准启动文件和标准库文件,只把指定的文件传递给链接器。这个选项常用于编译内核、bootloader 等程序,它们不需要启动文件、标准库文件。跑裸机程序时,我们使用自己编译的启动文件及库文件。
$(SOBJS) : obj/%.o : %.S
$(CC) -Wall -nostdlib -fno-builtin -c $(INCLUDE) -o $@ $<
$(COBJS) : obj/%.o : %.c
$(CC) -Wall -Wa,-mimplicit-it=thumb -nostdlib -fno-builtin -c $(INCLUDE) -o $@ $<