在发布候选者断言失败中显示的完全限定的源文件路径

时间:2018-01-23 15:33:55

标签: c++ windows assertions rapidjson c++17

目前我的软件发货版本存在问题。在某些情况下会抛出一个断言,如下所示...

enter image description here

这个错误消息令人尴尬,但是糖的顶部是这样的事实,即一些源文件的完全限定引用如何引发异常......包括我的名字! 显然这是源在开发过程中的位置,但这是一个候选版本(用于部署)所以我假设不会在二进制文件中构建调试/符号?

我试着查看项目的各种属性,但不能推断任何可能导致“持久”的选项。发布版本中完全限定的源文件路径。这是断言的副产品吗? 在发布版本中触发,或者我在这里错过了什么。如果这是标准行为,那么其他人如何通过断言缓解这个问题(即确保完全合格的路径不包括任何非专业人员' 字符串,如果呈现给用户)。

P.S在这种情况下的断言由rapidjson失败,这是一个非常有效的问题。

1 个答案:

答案 0 :(得分:1)

似乎未定义符号NDEBUG,否则根本不会提出断言。

您可以在任何包含之前在代码中将其明确定义为#define NDEBUG,或者您可以在命令行上执行此操作。

VS将是Project Properties> C / C ++>命令行,您可以为发布配置键入\D "NDEBUG"(但不是调试配置)。

gcc你做-d NDEBUG

你要做-D NDEBUG