C++ 如何生成扩展名为o.d的文件
在ubuntu 15.04中执行命令“make”后,我发现文件。*.o.d的内容如下:C++ 如何生成扩展名为o.d的文件,c++,linux,gcc,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
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/i486linux-gnu/4.4.3,而是/usr/lib/gcc/i686linux-gnu/4.9
那么这些文件是如何生成的,以及我如何更改这些文件中的路径呢 您可以在gnu环境中使用
gcc-MM
生成依赖项文件(.d
)。发件人:
解决方案相当简单:每次构建.o文件时,我们都会
创建一个扩展名为.d(用于依赖项)的文件,该文件记录以下内容
文件用于创建相应的.o文件。(请注意,我们有
与某些文件相比,不提前创建.d文件
.d文件将用make语言本身编写,
并包含在主生成文件中。我们可以生成文件
使用gcc的-MM选项