Makefile 中 -g、-o、-c、-C、-f 、-D、-Wall、-L、-nostdlib 含义

Makefile 中 -g、-o、-c、-C、-f 、-D、-Wall、-L、-nostdlib 含义_第1张图片
例:

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 $@ $<

Makefile 中 -g、-o、-c、-C、-f 、-D、-Wall、-L、-nostdlib 含义_第2张图片

你可能感兴趣的:(Makefile 中 -g、-o、-c、-C、-f 、-D、-Wall、-L、-nostdlib 含义)