0

私はrapidjsonを使用していますが、std::stringを一緒に使用したいと考えています。次に、この -DRAPIDJSON_HAS_STDSTRING を定義する必要があります。

私の CMakeLists.txt には次のものがあります。

add_definitions(-DRAPIDJSON_HAS_STDSTRING)

そして、それは問題なく構築されます。

問題は、Eclipse CDT でインデクサーにその定義を認識させたいことです。次に、一部の関数をエラーとしてマークしません。

CMakeLists.txt でどうすればできますか? 私は運なしでこれを試しました:

set(CMAKE_CXX_COMPILER_ARG1 "-std=c++11 -DRAPIDJSON_HAS_STDSTRING=1" CACHE STRING "Compiler Args" FORCE)
4

1 に答える 1

1

RapidJSON はヘッダーのみのライブラリであるため、rapidjson ヘッダーを含める直前に、必要なマクロを定義できます。

プロジェクトにこの種のグローバル構成ヘッダーがない場合は、次のようなローカル ヘッダーを作成できますmyrapidjson.h

#pragma once
#define RAPIDJSON_HAS_STDSTRING 1
#include "rapidjson/rapidjson.h"
// other headers if you always need them

そして、ヘッダー/実装ファイルに rapidjson が必要な場合は、最初にこのヘッダーをインクルードしてください。

于 2015-09-24T03:21:24.160 に答える