我试图使用2005编译器在Visual Studio 2010中编译我们的项目,我偶然发现了这个奇怪的错误。
每当我尝试使用带有“不发送”按钮的“Microsoft(R)C / C ++优化编译器”错误对话框从VS2010编译它时,这个特定的文件会崩溃编译器。我看了VS2010调用2005的编译器的方式,并注意到VS2005调用它的方式有些不同。所以我在每次尝试后尝试编译时逐个删除这些差异,一旦我删除了/Gd
标志,文件就成功编译了。
查看编译器文档,此标志控制调用约定并将其设置为__cdecl,这是默认值。唯一不同的是在VS2005中省略了它,但是VS2010决定将它添加到命令行,导致崩溃。
有没有人遇到这个问题,或者知道解决这个问题的方法?我似乎无法找到一种方法让VS2010从命令行中删除/Gd
,即使它是默认值。我唯一能找到的是如何添加参数,而不是删除。
感谢。
答案 0 :(得分:1)
假设您有充分的理由想要将新IDE与其编译器的祖父母一起使用(我很好奇!),您可以在“C / C ++”配置属性的“高级”分支中更改调用约定。一个项目。
该列表框只给我三个值可供选择,但是当我手动删除文本时,IDE调用编译器而没有任何/ Gx开关 - 至少这是“命令行”分支显示的内容。
将您的问题归结为一个重复案例可能是一个好主意,并联系提供该问题的MS支持。他们可能已经有一个针对该问题的修补程序,如果他们没有,他们可能能够在相对较短的时间内生成一个。由于软件中的错误而导致的联系支持过去是免费的(当编译器崩溃而不是发出始终是编译器错误的有意义的消息时)。