我使用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)
答案 0 :(得分:1)
由于RapidJSON是一个仅限标头的库,因此您可以在包含rapidjson标头之前定义所需的宏。
如果您的项目中没有此类全局配置标头,则可以创建一个本地标头,如myrapidjson.h
:
#pragma once
#define RAPIDJSON_HAS_STDSTRING 1
#include "rapidjson/rapidjson.h"
// other headers if you always need them
然后当你的标题/实现文件需要rapidjson时,首先要包含这个标题。