我下载了libjson包并将其添加到我的VS2010项目文件夹中。我创建了一个名为checkJson的新项目,并添加了以下代码:
#include "../../libjson/libjson.h"
int main(){ return 0;}
当我编译时,我得到一个错误:“释放libjson的构建,但是NDEBUG不在”
由于这是我第一次使用Visual Studio,我认为我在这里有一个非常基本的错误。你能帮帮我吗?
此外,如果这个包有问题,或者你知道我可以使用的其他一些json解析包而没有很多配置问题,我不关心使用它们而不是这个包。
答案 0 :(得分:1)
对于初学者,请尝试在“发布”配置中编译项目。
如果它有效(并且我相信它应该),即使在调试配置中,您也可以尝试定义NDEBUG变量。但它可能会产生意想不到的结果!
答案 1 :(得分:1)
Visual Studio将在创建项目时将NDEBUG指令添加到项目的预处理器设置中。这可能是沿线的某个地方被删除或更改的。进入项目属性并选择适当的配置(在本例中为“Release”)。然后进入Configuration Properties -> C/C++ -> Preprocessor
。在顶部,您会看到Preprocessor Directives
。在此属性中确保存在NDEBUG。如果没有添加它。请注意,此属性将包含多个预处理器定义,每个定义用分号分隔。例如,在32位Windows控制台应用程序中,您将看到类似这样的内容 -
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
。
不将#define NDEBUG
添加到项目中的任何标头或源文件中,除非您完全知道自己在做什么。如果不使用适当的#ifdef / #endif指令包装它,这可能会导致非发布版本出现问题。
答案 2 :(得分:1)
将JSON_DEBUG
添加到预处理器设置可以节省您的时间。
但我遇到另一个错误消息:
error C2059: syntax error : ''
和
//#define JSON_DEPRECATED_FUNCTIONS
答案 3 :(得分:0)
是否有类似的警告 “警告C4603:'NDEBUG':未定义宏或预编译头后定义不同”。?
如果是,请将#define NDEBUG放在#include“stdafx.h”之后,或将其移到stdafx.h
我还要评论这条线
#define JSON_DEPRECATED_FUNCTIONS
在JSONOptions.h中,但之后我至少能够编译。