我有一个C ++项目,我想查看预处理器输出,看看有些#defines和宏看起来像什么。我尝试了/p
开关打开预处理到编译器的文件选项(它关闭完整编译并只运行预处理器)但我的项目现在拒绝编译并显示一长串错误,从以下开始:
“无法打开包含文件:'stdafx.h':没有这样的文件或目录”。
当然,项目在没有/p
参数的情况下编译正常。有什么建议吗?
答案 0 :(得分:0)
使用/I
进行编译时,所有其他选项(例如/p
)是否仍然相同?听起来好像它没有拿起你的头文件。或者,因为它试图预处理所有包含它不再生成stdafx.h
预编译头 - 您可以尝试直接包含所有需要的头而不是它。
答案 1 :(得分:0)
如果您自己运行cl.exe
,那么您需要提供与构建时IDE所做的所有相同的参数,否则它无法找到所有包含路径和预处理器宏。但是,还有另一种方法可以做到这一点。在项目文件中,选择所需的.cpp文件,然后选择“属性”> C ++>预处理器>生成预处理器文件。然后编译.cpp文件。
这将在输出目录中生成预处理文件(我认为file.i
)。遗憾的是,没有一种简单的选择文件并点击“预处理”的方法,但这可能很容易用VisualStudio宏完成。不要忘记之后再设置选项。