繁体   English   中英

gcc 自动依赖完整路径

[英]gcc auto dependency full path

我有一个简单的项目 - 它有一个foo.cxx和一个bar.h

// bar.h
// nothing

// foo.cxx
#include "bar.h"
// nothing else

如果我包含带有"" s 的bar.h ,则依赖文件包含所有内容及其完整路径:

$ g++ -std=c++11 -MP -MMD -MF /home/barry/sandbox/foo.d 
      -c /home/barry/sandbox/foo.cxx -o /home/barry/sandbox/foo.o

$ cat foo.d
/home/barry/sandbox/foo.o: /home/barry/sandbox/foo.cxx \
 /home/barry/sandbox/bar.h

/home/barry/sandbox/bar.h:

但是,如果我将它包含在<>并添加-I. ,我只是自己得到bar.h

$ g++ -std=c++11 -I. -MP -MMD -MF /home/barry/sandbox/foo.d 
      -c /home/barry/sandbox/foo.cxx -o /home/barry/sandbox/foo.o

$ cat foo.d
/home/barry/sandbox/foo.o: /home/barry/sandbox/foo.cxx bar.h

bar.h:

有没有办法获得所有文件的完整路径?

问题在于-I. 当 gcc 确定<bar.h>的包含时,它会发现它是./bar.h ,所以它会以同样的方式打印在依赖文件中。

如果我也通过-I提供完整路径:

$ g++ -std=c++11 -I/home/barry/sandbox -MP -MMD 
      -MF /home/barry/sandbox/foo.d 
      -c /home/barry/sandbox/foo.cxx 
      -o /home/barry/sandbox/foo.o

然后不管""<> ,我都会根据需要在foo.d获得bar.h的完整路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM