使用cmake在项目属性(eclipse)中添加一个定义

Add a definition in project properties (eclipse) with cmake

本文关键字:添加 定义 一个 eclipse cmake 项目 属性 使用      更新时间:2023-10-16

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

因为RapidJSON是一个头文件库,你可以在包含RapidJSON头文件之前定义你需要的宏。

如果您的项目中没有这种全局配置头文件,您可以创建一个本地头文件,如myrapidjson.h:

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

然后当你的头文件/实现文件需要rapidjson时,只需先包含这个头文件