0

我正在使用 rapidjson,我想使用 std::string's。然后我必须定义这个-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 回答