C++ 如何在编译过程中遵循预处理器指令
我正在使用一个程序,充满编译器指令,在VisualStudio中编程 我做了一些更改,现在遇到了一个未解决的外部编译器/链接器错误 我相信这是由编译器指令造成的,这些指令似乎没有检测到特定函数的实现,为了研究这一点,我想在整个编译过程中遵循C++ 如何在编译过程中遵循预处理器指令,c++,visual-studio,preprocessor,compiler-directives,C++,Visual Studio,Preprocessor,Compiler Directives,我正在使用一个程序,充满编译器指令,在VisualStudio中编程 我做了一些更改,现在遇到了一个未解决的外部编译器/链接器错误 我相信这是由编译器指令造成的,这些指令似乎没有检测到特定函数的实现,为了研究这一点,我想在整个编译过程中遵循#ifdef编译器指令 我已经尝试过使用/p配置,但是在输出窗口中没有看到任何编译器指令 有人知道怎么做吗?我认为您使用/p选项的方法是正确的,但是该选项说明输出将进入扩展名为.I的文件(因此可能不会进入您的输出窗口) 此外,您还可以通过生成映射文件来查找有关
#ifdef
编译器指令
我已经尝试过使用/p
配置,但是在输出
窗口中没有看到任何编译器指令
有人知道怎么做吗?我认为您使用
/p
选项的方法是正确的,但是该选项说明输出将进入扩展名为.I
的文件(因此可能不会进入您的输出窗口)
此外,您还可以通过生成映射文件来查找有关任何链接器错误的帮助;请参阅。Visual Studio应该灰显被宏禁用的代码块,不是吗?确实如此,但这仅在静态编译器指令的情况下才有用,但在我的情况下,有时它们从定义开始,然后取消定义,然后再重新定义,…,我在其中失去了自己(因此很可能是未解决的外部问题),我希望预处理器的编译输出能告诉我发生了什么。谢谢,@Phil,但它似乎不起作用:我没有*.I文件,也没有其他东西,即使在设置了
/map
设置之后。输出窗口是否显示正在执行的编译器命令?可能有一些线索表明为什么要执行这些文件没有生成。我只是尝试在一个简单的控制台应用程序上启用/P
选项并生成了。.I
文件位于生成输出目录中(例如,在我的例子中是Debug
)。链接失败是一个副作用(因此,在解决编译器/预处理器问题后,您将在那里解决问题)。谢谢,我找到了*。我
文件,我找错了目录。