使用cmake

时间:2015-09-15 20:50:09

标签: c++ eclipse cmake rapidjson

我使用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)

1 个答案:

答案 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时,首先要包含这个标题。