【发布时间】: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