Debug模式下,visual c++的编译器cl.exe会设置一个/ZI的选项,这个选项会让代码中的__FILE__扩展成一个绝对路径的文件名,这样在看log的时候会很痛苦,因为一般绝对路径都很长。
其实查了一下cl.exe的manual,产生这种效果的是/FC选项(full source path),但是由于/ZI选项包含了/FC选项,所以如果设置了/ZI选项,这样也会有这样的效果。而/ZI选项主要目的是生成一个pdb文件(Program Database),而且支持edit and continue(就是debug到一半,改了代码可以直接继续debug,不用重新编译再debug)。如果不需要这个feature,那么可以使用/Zi来代替,这样就可以避免掉__FILE__扩展成绝对路径的问题了。
在visual studio中,修改/ZI->/Zi是在C/C++->General中,Debug Information Format一项中设置的。