完全合格的源文件路径显示在发布候选断言失败中
Fully qualified source filepath showing in release candidate Assertion failure
我目前在使用我们软件的发货版本时遇到问题。在某些情况下,会抛出如下所示的断言...
这个错误消息已经够尴尬了,但最妙的是,有些源文件的完全限定引用引发了异常...包括我的名字!
显然这是开发期间该源的位置,但这是一个候选发布版本(用于部署)所以我假设没有 debug/symbols 会内置到二进制文件中?
我尝试查看项目的各种属性,但无法推断出任何可能导致发布版本中 'persisting' 完全限定源文件路径的选项。这是断言的副产品吗
在发布版本中触发,或者我在这里遗漏了什么。如果这是标准行为,其他人如何缓解断言的这个问题(即确保完全限定的路径不包含任何 'un-professional'
如果呈现给用户的字符串)。
P.S 这种情况下的断言被 rapidjson 失败了,这是这里提出的一个完全有效的问题。
似乎符号 NDEBUG
未定义,否则根本不会引发断言。
您可以在任何包含之前在代码中将它们显式定义为 #define NDEBUG
,或者您可以在命令行上进行。
VS 将是项目属性> C/C++ > 命令行,您需要为发布配置键入 \D "NDEBUG"
(但不是调试配置)。
gcc 你会做 -d NDEBUG
clang 你会做 -D NDEBUG
我目前在使用我们软件的发货版本时遇到问题。在某些情况下,会抛出如下所示的断言...
这个错误消息已经够尴尬了,但最妙的是,有些源文件的完全限定引用引发了异常...包括我的名字! 显然这是开发期间该源的位置,但这是一个候选发布版本(用于部署)所以我假设没有 debug/symbols 会内置到二进制文件中?
我尝试查看项目的各种属性,但无法推断出任何可能导致发布版本中 'persisting' 完全限定源文件路径的选项。这是断言的副产品吗 在发布版本中触发,或者我在这里遗漏了什么。如果这是标准行为,其他人如何缓解断言的这个问题(即确保完全限定的路径不包含任何 'un-professional' 如果呈现给用户的字符串)。
P.S 这种情况下的断言被 rapidjson 失败了,这是这里提出的一个完全有效的问题。
似乎符号 NDEBUG
未定义,否则根本不会引发断言。
您可以在任何包含之前在代码中将它们显式定义为 #define NDEBUG
,或者您可以在命令行上进行。
VS 将是项目属性> C/C++ > 命令行,您需要为发布配置键入 \D "NDEBUG"
(但不是调试配置)。
gcc 你会做 -d NDEBUG
clang 你会做 -D NDEBUG