VS2005 C++ 编译器因 /Gd 标志而崩溃

问题描述 投票:0回答:1

我试图使用 2005 编译器在 Visual Studio 2010 中编译我们的项目,我偶然发现了这个奇怪的错误。

每当我尝试使用带有“不发送”按钮的“Microsoft (R) C/C++ 优化编译器”错误对话框从 VS2010 编译该文件时,这个特定文件就会使编译器崩溃。我查看了 VS2010 调用 2005 编译器的方式,并注意到 VS2005 调用它的方式有一些差异。因此,我开始一一删除这些差异,同时尝试在每次尝试后进行编译,一旦删除了

/Gd
标志,文件就成功编译了。

查看编译器文档,该标志控制调用约定并将其设置为 __cdecl,这是默认值。唯一的区别是在 VS2005 中省略了它,但 VS2010 决定将其添加到命令行中,导致崩溃。

有人遇到过这个问题,或者知道解决这个问题的方法吗?我似乎无法找到一种方法让 VS2010 从命令行中删除

/Gd
,即使它是默认的。我唯一能找到的是如何添加参数,而不是删除。

c++ visual-studio-2010 visual-studio-2005
1个回答
0
投票

假设您有充分的理由想要使用新的 IDE 及其编译器的祖父母(我很好奇!),您可以在项目的“C/C++”配置属性的“高级”分支中更改调用约定.
该列表框只提供了三个值供我选择,但是当我手动删除文本时,IDE 会调用编译器,而无需任何 /Gx 开关 - 至少“命令行”分支显示的是这样的。

将您的问题归结为重现案例并联系提供该案例的 MS 支持可能是个好主意。他们可能已经有针对该问题的修补程序,如果还没有,他们可能能够在相对较短的时间内制作出一个修补程序。由于软件中的错误而联系支持人员过去是免费的(当编译器崩溃而不是发出有意义的消息时,这始终是编译器错误)。

© www.soinside.com 2019 - 2024. All rights reserved.