【问题标题】:Full path names printed for __FILE__ in VS2008VS2008 中为 __FILE__ 打印的完整路径名
【发布时间】:2011-07-04 13:31:52
【问题描述】:

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

但是,我们刚刚注意到,虽然源(.cpp 文件)正确地只打印文件名,但标题(.h 文件)打印完整路径。这暴露了我们的构建服务器在客户安装上的路径,这充其量是令人困惑的。

我研究了/FC (full pathnames) 编译选项以及它与/ZI and /Zi (debug info generation) 编译选项的关系。短版 - /ZI 暗示 /FC。我们目前正在使用/Zi,但我们没有使用/ZI/FC,所以应该没问题。

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

这是怎么回事?
我是否可能触发了潜在的编译选项?
有谁知道不涉及调用运行时字符串操作函数的解决方法?

【问题讨论】:

  • 我们的解决方案是实现一个字符串修剪函数,该函数返回一个指向完全限定路径中文件名子字符串开头的指针。

标签: c++ visual-studio-2008 path filenames


【解决方案1】:

这在feedback article 中被断言为“设计使然”。考虑一个后处理步骤,以您想要的方式破解路径。

【讨论】:

  • 感谢您找到它 - 我在昨天的搜索中错过了它。啊。如果这在 MSDN 上的任何地方都有记录,那就太好了。我想我会将该链接放入 /FC 文档中。
猜你喜欢
  • 1970-01-01
  • 2021-06-11
  • 2020-12-19
  • 2012-03-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多