4

libjsonパッケージをダウンロードして、VS2010プロジェクトフォルダーに追加しました。checkJsonという新しいプロジェクトを作成し、次のコードを追加しました。

#include "../../libjson/libjson.h"
int main(){ return 0;}

コンパイルすると、「libjsonのビルドをリリースしますが、NDEBUGがオンになりません」というエラーが発生します。

Visual Studioを使用するのはこれが初めてなので、ここでは非常に基本的な間違いがあると思います。手伝ってくれませんか?

さらに、このパッケージに問題がある場合、または多くの構成の問題なしに使用できる他のjson解析パッケージを知っている場合は、このパッケージの代わりにそれらを使用してもかまいません。

4

4 に答える 4

1

手始めに、「リリース」構成でプロジェクトをコンパイルしてみてください。

それが機能する場合(そして私はそれが機能するはずだと私は信じています)、デバッグ構成でもNDEBUG変数を定義しようとするかもしれません。ただし、予期しない結果が生じる可能性があります。

于 2011-07-21T12:59:06.943 に答える
1

Visual Studio は、プロジェクトの作成時に NDEBUG ディレクティブをプロジェクトのプリプロセッサ設定に追加します。これは途中で削除または変更された可能性があります。プロジェクトのプロパティに移動し、適切な構成 (この場合は「リリース」) を選択します。次に、に入りConfiguration Properties -> C/C++ -> Preprocessorます。上部に が表示されますPreprocessor Directives。このプロパティで、NDEBUG が存在することを確認してください。そうでない場合は追加します。このプロパティには、セミコロンで区切られた複数のプリプロセッサ定義が含まれることに注意してください。たとえば、32 ビット Windows コンソール アプリケーションでは、次のように表示されます。

WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions).

何をしているのか完全に理解していない限り、プロジェクトのヘッダーまたはソース ファイルに追加しないでください。#define NDEBUG適切な #ifdef/#endif ディレクティブでラップしないと、非リリース ビルドで問題が発生する可能性があります。

于 2011-07-21T19:23:45.063 に答える
1

プリプロセッサの設定に追加JSON_DEBUGすると、あなたを救うことができます。しかし、別のエラー メッセージが表示されます。

error C2059: syntax error : ''  

//#define JSON_DEPRECATED_FUNCTIONS 
于 2011-09-12T06:35:12.010 に答える
0

「Warning C4603: 'NDEBUG' : macro is not defined or definition is different after precompiled header」のような警告はありますか?

はいの場合は、#define NDEBUG を #include "stdafx.h" の後に配置するか、stdafx.h に移動します。

#define JSON_DEPRECATED_FUNCTIONS JSONOptions.hの行にもコメント を付ける必要がありましたが、その後は少なくともコンパイルできました。

于 2011-07-21T18:14:03.577 に答える