1、依赖关系.d
int main(){ int result = addTwo(3,2); printf(“%d\n”,result); return 0; } ```
但如果是一个比较大型的工程,你必需清楚每一个 C 源文件包含了哪些头文件,并且在加入或删除头文件时,也需要小心地修改 Makefile,这是一个很没有维护性的工作。为了避免这种繁重而又容易出错的事情,我们可以使用 C/C++ 编译的一个功能。大多数的 C/C++ 编译器都支持一个 “-M” 的选项,即自动找寻源文件中包含的头文件,并生成一个依赖关系。例如,执行下面的命令
-MM
查看某个文件的依赖关系
- gcc -MM xx:生成文件的依赖关系,不包含标准库的头文件
- gcc -M xx:生成文件的依赖关系,包含标准库的头文件
xin@ubuntu:/mnt/hgfs/make_demo$ gcc -MM main.c main.o: main.c add.h xin@ubuntu:/mnt/hgfs/make_demo$ gcc -M main.c main.o: main.c /usr/include/stdc-predef.h /usr/include/stdio.h \ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ /usr/include/x86_64-linux-gnu/bits/wordsize.h \ /usr/include/x86_64-linux-gnu/gnu/stubs.h \ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h \
/usr/include/x86_64-linux-gnu/bits/types.h \
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h \
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h add.h
-MF
- 依赖关系写入到文件.d
xin@ubuntu:/mnt/hgfs/make_demo$ gcc -MM -MF main.d main.c
xin@ubuntu:/mnt/hgfs/make_demo$ cat main.d
main.o: main.c add.h
xin@ubuntu:/mnt/hgfs/make_demo$
- 另一种写法,>表示把命令输出结果写入到文件main.d中
xin@ubuntu:/mnt/hgfs/make_demo$ gcc -MM main.c > main.d
xin@ubuntu:/mnt/hgfs/make_demo$ cat main.d
main.o: main.c add.h
