在VS2008中,__FILE__打印的是完整路径名。

5
我们的代码使用__FILE__在日志文件中打印代码位置。
我们的意图是所有的__FILE__实例都只打印文件名,不包括路径。

然而,我们刚刚注意到,源代码(.cpp文件)正确地只打印了文件名,但头文件(.h文件)打印了完整路径。这暴露了我们的构建服务器路径,对客户的安装造成了困扰。

我已经研究了编译选项/FC(完整路径名)及其与/ZI/Zi(调试信息生成)编译选项的关系。简而言之,/ZI意味着/FC。我们目前正在使用/Zi,但我们没有使用/ZI/FC,所以应该没问题。

我们使用了项目范围的预编译头(PCH),但PCH中包含的头文件都没有使用__FILE__,所以这似乎是无关紧要的。

这里发生了什么?
我是否触发了潜在的编译选项?
有没有人知道一种不涉及运行时字符串操作函数的解决方法?


我们的解决方案是实现一个字符串修剪函数,该函数返回完全限定路径中文件名子字符串的起始指针。 - mskfisher
1个回答

1

这在反馈文章中被断言为“按设计”。考虑一个后处理步骤,以您想要的方式修改路径。


谢谢你找到了那个 - 昨天我在搜索一个小时时错过了它。唉,如果MSDN上有记录就好了。我想我会把那个链接放到/FC文档中。 - mskfisher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接