断言未从发布版本编译

时间:2011-05-28 16:39:45

标签: visual-c++ release assertion

我告诉VC ++在发布模式下编译我的程序,但assert()语句仍然会触发。我认为断言应该是从发布版本中编译出来的。这是怎么回事?我是否需要设置其他设置以跳过编译它们?

2 个答案:

答案 0 :(得分:2)

检查您要定义的预处理器symbold。 Debug构建通常会定义_DEBUG,而Release构建通常会定义NDEBUG。通常在定义NDEBUG时关闭断言。

答案 1 :(得分:0)

在调试器下打开应用程序。在断言对话框启动时,调试 - >断开。查看断言触发的源文件。现在看一下该文件的构建设置。如果设置似乎正确并且您正在加载发行版本,请在编译器命令行上设置/ P和/ d1PP以显示错误#define的来源。

马丁