4

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

4

2 回答 2

2

检查您正在定义的预处理器符号。Debug 构建通常会定义_DEBUG,Release 构建通常会定义NDEBUGNDEBUG断言通常会在定义时被关闭。

于 2011-05-28T16:48:48.613 回答
0

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

马丁

于 2011-05-28T17:18:30.377 回答