0

我正在尝试在我的 C++ 项目中使用nlohmann json 。从 github 下载压缩文件后,我提取了压缩文件。我将提取的文件夹重命名为,nlohmann_json然后将其复制到我的项目中。

github 文档说:

json.hpp 是 single_include/nlohmann 中的单个必需文件或在此处发布。您需要添加

#include <nlohmann/json.hpp>

// for convenience
using json = nlohmann::json;

所以在我的.cpp文件中,我有以下几行:

#include "nlohmann_json/include/nlohmann/json.hpp"

using json = nlohmann::json;

但 Visual Studio 2015 IDE 显示为工具提示以下消息:

命名空间 nlohmann 没有成员 json

只是输入后nlohmann::,我得到一个自动建议json_pointer但不是json

实际上出了什么问题?

4

2 回答 2

3

您实际上对您的问题有提示。

json.hpp is the single required file in single_include/nlohmann or released here. You need to add

如果您转到从 github 签出的原始树,请执行以下操作:

$ find . -name json.hpp
./include/nlohmann/json.hpp
./single_include/nlohmann/json.hpp

你可能会看到你的问题。您将包含第一个找到的文件。你真的需要第二个 - 或者 - 你需要更好地设置包括搜索路径。

这就是我要做的。我会将 ./single_include/nlohmann/json.hpp 复制到项目中。我不会包括整个树,只是那个文件。并包括它。

我认为这对你会更好。

于 2019-05-23T20:38:15.293 回答
0

您可以使用单头方法,您可以直接包含单个 json.hpp(在 single_include 中,只需将 nlohmann/json.hpp 放在项目的根目录中)。或者,如果您想包含具有多个文件的文件,则需要在 VS 项目设置中设置其他包含标头。

MyProj
  nlohmann\....
  main.cpp 

然后在您的 VS 项目设置中将项目的路径添加到其他包含目录。

于 2019-05-23T20:39:11.787 回答