我使用 GCC 进行编译,我想使用 __FILE__ 打印文件的完整路径,但 GCC 仅显示文件名。在 MSVC 中是相同的,但您可以使用参数 /FC (Full Path of Source Code File in Diagnostics)它有效。有与 GCC 等效的吗?
int main(int argc, char ** argv)
{
std::cout << __FILE__ << std::endl;
return 0;
}
最佳答案
我找不到任何等效项,但我意识到 __FILE__
宏通过预处理器打开文件所使用的路径扩展为当前输入文件的名称。因此,这取决于传递给编译器的内容。
我使用CMake
作为构建系统解决了这个问题。当CMake
创建MakeFile时,它使用变量CMAKE_SOURCE_DIR
中的完整路径,这样__FILE__
将准确打印我们期望的内容。
关于c++ - MSVC/FA GCC 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25942914/