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:
但是,如果我将其包含在 <>
s 中并添加 -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
的完整路径。
相关文章:
- 如何从C++中的依赖类型中获得它所依赖的类型
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- C++A*算法并不总是在路径中具有目标节点
- 使用运行路径进行 C++ 辅助依赖项解析
- CMake将依赖项复制到可执行输出路径
- 如果 copts 不允许系统路径,如何引用外部依赖项使用的系统库?
- 错误 LNK1104:错误消息中显示的路径未在其他依赖项中定义
- 提供依赖于输入的程序的文件路径
- 共享库依赖于具有硬编码路径的其他库
- Maven NAR插件:在路径上找不到DLL依赖项
- 如何解决 CMake + XCode 4 路径依赖项
- qmake:如何消除对绝对路径的依赖
- Heroku / Rails:无法设置供应商化依赖项的路径
- 对提升库的依赖没有完整路径
- 为构建依赖使用绝对路径
- (make/g++)包含自动生成的依赖目标的完整路径?(或方法)
- 动态依赖库/tls搜索路径
- GCC 自动依赖完整路径
- 在DLL搜索路径中添加路径以帮助执行依赖于DLL的EXE