0

我正在使用一个代码库,该代码库有很多被定义、未定义和重新定义的宏。令人惊讶的是,编译器仍然能够咀嚼它们,所以无论如何要提取这种宏扩展结果,即

MY_MACRO -> myFolder/myFile.cpp #266 float myFunc()

有没有办法为 MSVC 和 GCC 获得这个?

4

3 回答 3

2

您可以gcc -E用于 GNU C/C++

对于 Visual Studio,您可以CL /EP /C myfile.cpp在命令提示符下使用。

于 2013-07-16T19:52:13.173 回答
1

对于 MSVC,使用 /P 开关进行编译(项目 > 属性 > C/C++ > 预处理器 > 生成预处理文件)。在解析所有预处理指令之后,这会生成包含编译器实际看到的文本的文件(扩展名为 .i)。

我认为在 Unix-y 平台上,您可以使用cpp工具实现相同的目标。

于 2013-07-16T19:50:12.823 回答
0

GDB 可让您查看宏的结果(请参阅http://sourceware.org/gdb/onlinedocs/gdb/Macros.html)。但我不知道有什么能准确地给出你正在寻找的东西。希望这可以帮助

于 2013-07-16T19:18:24.597 回答