Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 版本候选断言中显示的完全限定源文件路径失败_C++_Windows_Assertions_Rapidjson_C++17 - Fatal编程技术网

C++ 版本候选断言中显示的完全限定源文件路径失败

C++ 版本候选断言中显示的完全限定源文件路径失败,c++,windows,assertions,rapidjson,c++17,C++,Windows,Assertions,Rapidjson,C++17,我有一个问题,目前与我们的软件发货版本。在某些情况下,会抛出一个断言,如下所示 这个错误消息已经够令人尴尬的了,但最重要的是,源文件的完全限定引用引发了异常。。。包括我的名字! 显然,这是开发过程中该源的位置,但这是一个候选版本(用于部署),所以我假设二进制文件中不会内置调试/符号 我试图查看项目的各种属性,但无法推断出任何可能导致在发布版本中“持久化”完全限定的源文件路径的选项。这是一个断言的副产品吗 在发布版本中触发,或者我错过了一些东西。如果这是标准行为,其他人如何缓解断言的这个问题(即

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

这个错误消息已经够令人尴尬的了,但最重要的是,源文件的完全限定引用引发了异常。。。包括我的名字! 显然,这是开发过程中该源的位置,但这是一个候选版本(用于部署),所以我假设二进制文件中不会内置调试/符号

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


p.S在本例中,rapidjson的断言失败,这是此处提出的一个完全有效的问题。

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

您可以在任何include之前在代码中将它们显式定义为
#define NDEBUG
,也可以在命令行上执行

VS将是projectproperties>C/C++>命令行,您可以为发布配置(而不是调试配置)键入
\d“NDEBUG”

gcc你会做的
-d NDEBUG


除非您通过构建调试版本,否则通常不会触发断言accident@AndyG这是我的理解,然而rapidjson是一个只有标题的库。我猜某些标志允许将断言包含到与这些头相关联的遵从单元中?在任何包含之前,您能否尝试在代码中定义NDEBUG。@谢谢,这已经停止了这些断言。我应该将这个#define NDEBUG封装在#ifndef#调试指令中吗?我正在使用VS2017,还想知道调试构建期间的断言?非常感谢,请随意添加此作为aswer:)这很奇怪,我认为VS会自动为发布配置定义“NDEBUG”。您可以在projectproperties>C/C++>命令行下查看是否有“NDEBUG”。谢谢,这已经解决了我的问题。由于某些原因,默认情况下没有定义NDEBUG,我已经手动将它们添加到发布的命令行中。