如果没有安装CRT,你会在C ++下获得Debug Assertions吗?

时间:2010-07-15 15:58:21

标签: c++ debugging assertions

如果在没有安装VS或CRT的操作系统上运行C ++程序的Debug版本,是否仍会出现Debug Assertion错误框?

那些说“Debug Assert Failed!”。

或者,只有在机器安装了某些组件(如CRT或Visual Studio)时才能获取它们?

2 个答案:

答案 0 :(得分:2)

这取决于您构建应用程序的方式。如果您动态链接到调试CRT,则用户不太可能在其系统上安装调试CRT,除非他们是开发人员(实际上由于VS的许可,您无法分发它)。所以在这种情况下它甚至不会运行。如果您静态链接到CRT,那么如果您已经向它们发送了调试版本,则用户将看到断言。

答案 1 :(得分:1)

如果你可以让它运行,是的。使用/ MDd(默认值)进行编译需要分发动态CRT的调试版本。它不是可再发行的组件,无论如何运输都是违反许可证的。您可以通过编译/ MTd来解决它。

当然,您的用户将不知道“调试断言失败”意味着什么,并且无法理解为什么忽略不起作用。最好避免。