Gcc __BASE_FILE_uuu宏解析完整文件路径,而不仅仅是文件名

Gcc __BASE_FILE_uuu宏解析完整文件路径,而不仅仅是文件名,gcc,compilation,macros,c-preprocessor,Gcc,Compilation,Macros,C Preprocessor,我试图使用\uuuu BASE\u FILE\uuuuu预处理器宏获取文件名,但是它正在扩展到完整路径,类似于\uuuu FILE\uuuuu宏。为什么会这样 我使用的是gcc版本7.3.1 为什么会这样 \uuuuu BASE\u FILE\uuuuuu扩展到指定给编译器的路径。因此,如果将完整路径传递给编译器,则\uuu BASE\u FILE\uu将扩展到完整路径。如果将相对名称传递给编译器,则\uuuuuu BASE\u FILE\uuuu将扩展到相对名称 例如,如果使用g++../pa

我试图使用
\uuuu BASE\u FILE\uuuuu
预处理器宏获取文件名,但是它正在扩展到完整路径,类似于
\uuuu FILE\uuuuu
宏。为什么会这样

我使用的是gcc版本7.3.1

为什么会这样

\uuuuu BASE\u FILE\uuuuuu
扩展到指定给编译器的路径。因此,如果将完整路径传递给编译器,则
\uuu BASE\u FILE\uu
将扩展到完整路径。如果将相对名称传递给编译器,则
\uuuuuu BASE\u FILE\uuuu
将扩展到相对名称

例如,如果使用
g++../path/to/file.cpp
进行编译,则
\uu BASE\u file\uuu
将扩展到
。/path/to/file.cpp“