语音之家asv-subtools 声纹识别实战
2023-08-20 23:22 作者:每天学习n个拼课技巧 | 我要投稿
包含头文件的问题
main : a.o b.o c.o
gcc -o main $^
%.o : %.c
gcc -c -o $@ $<
问题的原因:
.o
文件的依赖只有.c
文件,若只修改头文件而不修改.c
文件,则编译时并不会准确修改编译的结果,相当于修改的头文件并没有起到效果;比如:修改
c.h
,则添加规则c.o : c.c c.h
:表示c.o的依赖是c.c
和c.h
,命令为空;但Linux中头文件过于庞大,手写规则会过于复杂,所以用以下命令添加规则
gcc -MM c.c #打印出c.c的依赖文件
gcc -MM -MF c.d c.c #将c.c的依赖写进c.d
gcc -c -o c.o c.c -MD -MF #把依赖写进c.d,编译生成c.o