__FILE__未在64位配置中提供完整的文件路径

时间:2015-04-07 08:43:16

标签: c++

当我以32位运行程序时,

__FILE__正在返回完整的文件路径。 但在64位中它只给出文件名。如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

这可能更多地取决于您驱动编译器的方式而不是32/64位差异。

我的期望(以及我在这里用gcc验证的)是__FILE__给出了提供给编译器的名称。例如

$ cat foo.c
int main() { printf("%s\n",__FILE__); }
$ gcc foo.c & ./a.out
foo.c
$ gcc ./foo.c & ./a.out
./foo.c
$ gcc `pwd`/foo.c & ./a.out
/the/full/path/as/reported/by/pwd/foo.c

类似于包含文件,报告的路径是编译器用来访问标头的路径,因此可能取决于您指定包含目录的方式。

相关问题