【问题标题】:Add a definition in project properties (eclipse) with cmake使用 cmake 在项目属性(eclipse)中添加定义
【发布时间】:2015-12-12 06:12:14
【问题描述】:

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

【问题讨论】:

  • 应该是CMAKE_CXX_FLAGS变量吗?
  • 我不知道,我现在不能尝试。但是我的项目现在编译得很好,我只希望 eclipse 项目能够识别该定义,以便索引器可以正常工作。当我回到家时,我会尝试设置 CMAKE_CXX_FLAGS。

标签: c++ eclipse cmake rapidjson


【解决方案1】:

由于 RapidJSON 是一个仅包含标头的库,因此您可以在包含 rapidjson 标头之前定义所需的宏。

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

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

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

【讨论】:

  • 谢谢!我以前没有这样想:D
猜你喜欢
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 2017-11-21
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多