镇江论坛网站建设,如何免费自做企业网站,阿里云建网站流程,朝阳网站设计1.-c选项和-C选项#xff1a;
-c#xff08;gcc选项#xff09;#xff1a;编译.c或汇编源文件#xff0c;但是不作连接. 编译器输出对应于源文件的目标文件.
如#xff1a;$(CC) -c ${CFLAGS} ${SRCS}
-C#xff08;makefile选项#xff09;#xff1a;-C的是make…1.-c选项和-C选项
-cgcc选项编译.c或汇编源文件但是不作连接. 编译器输出对应于源文件的目标文件.
如$(CC) -c ${CFLAGS} ${SRCS}
-Cmakefile选项-C的是make本身的内建命令选项是给make程序用的 不是给cc用的。make 程序接受了 -C选项面在参数它自己先跳到 -C后面选项的目录中在解析Makefile执行编译
如$(MAKE) -C ./${PLANTFORM} 2.$$^$$代表的意义
$--目标文件$^--所有的依赖文件$--第一个依赖文件。
如
mainmain.o mytool1.o mytool2.o gcc -o $ $^ main.omain.c mytool1.h mytool2.h gcc -c $ mytool1.omytool1.c mytool1.h gcc -c $ mytool2.omytool2.c mytool2.h gcc -c $
$: 与$^区别在于$^输出时会进行去重$完全按照原样输出不进行任何处理。
如 foo: foo1.bar foo2.bar foo2.barecho $echo $^
foo1.bar:echo foo1foo2.bar: echo foo2foo3.bar:echo foo3 输出为 foo1 foo2 foo1.bar foo2.bar foo2.bar foo1.bar foo2.bar
3.make -w“-w”或是“--print-directory”会在make的过程中输出一些信息让你看到目前的工作目录。比如如果我们的下级make目录是“/home/hchen/gnu/make”如果我们使用“make -w”来执行那么当进入该目录时我们会看到 make: Entering directory /home/hchen/gnu/make. 而在完成下层make后离开目录时我们会看到 make: Leaving directory /home/hchen/gnu/make 4.gcc选项-O2 -O2选项最大优化gcc -O2 helloworld.c 产生一个经过最大优化的叫作a.out的可执行文件。 5.gcc选项-g -g选项产生供gdb调试用的可执行文件gcc -g helloworld.c 产生一个叫作a.out的可执行文件大小明显比只用-o选项编译汇编连接后的文件大。 6.gcc选项-Wall -Wall选项开启所有的警告