如何生成扩展名为o.d的文件

时间:2015-07-30 15:20:05

标签: c++ linux gcc

在ubuntu 15.04中执行命令“make”后,我找到了文件。*。o.d,内容如下:

objdir.o: objdir.cpp /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h \
 /usr/include/assert.h /usr/include/features.h \
 /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
 /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
 /usr/include/gnu/stubs-32.h ../include/ntstatus.h ../include/windef.h \
 ../include/winnt.h ../include/basetsd.h /usr/include/ctype.h \
 /usr/include/bits/types.h /usr/include/bits/typesizes.h \
 /usr/include/endian.h /usr/include/bits/endian.h \
 /usr/include/bits/byteswap.h /usr/include/xlocale.h \
 /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h /usr/include/string.h \
 /usr/include/bits/string3.h ../include/pshpack2.h ../include/poppack.h \
 ../include/pshpack4.h ../include/guiddef.h ../include/pshpack8.h \
 ../include/winternl.h debug.h object.h list.h unicode.h objdir.h \
 object.inl ntcall.h thread.h timer.h fiber.h token.h mem.h \
 /usr/include/unistd.h /usr/include/bits/posix_opt.h \
 /usr/include/bits/environments.h /usr/include/bits/confname.h \
 /usr/include/getopt.h /usr/include/bits/unistd.h process.h symlink.h

但是在那些文件中我得到了错误的路径 - 例如,而不是/usr/lib/gcc/i486-linux-gnu/4.4.3必须有/usr/lib/gcc/i686-linux-gnu/4.9 那么这些文件如何生成以及如何更改这些文件中的路径?

1 个答案:

答案 0 :(得分:1)

您可以在gnu环境中使用.d生成依赖项文件(gcc -MM)。来自this page

  

解决方案非常简单:每次我们构建.o文件时,我们也会这样做   创建一个扩展名为.d(用于依赖)的文件,用于记录   文件用于创建相应的.o文件。 (注意我们这样做   与某些人不同,不提前创建.d文件   方法。).d文件将用make语言编写,   并包含在主Makefile中。我们可以生成文件   使用gcc的 -MM选项