C ++:在项目

时间:2019-05-23 20:13:48

标签: c++ nlohmann-json

我正在我的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的提示。

实际上出了什么问题?

2 个答案:

答案 0 :(得分:1)

您实际上暗示了您的问题。

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复制到项目中。我不会包括整个树,仅包括那个文件。并包含它。

我认为这对您会更好。

答案 1 :(得分:0)

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

MyProj
  nlohmann\....
  main.cpp 

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