C ++: использование nlohmann json в проекте - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь использовать nlohmann json в моем проекте C ++. Я распаковал zip-файл после того, как скачал его с 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 ]

1 голос
/ 23 мая 2019

У вас действительно есть подсказка к вашей проблеме.

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 в проект. Я НЕ включил бы все дерево, только этот файл. И включи это.

Я думаю, это будет работать лучше для вас.

0 голосов
/ 23 мая 2019

Вы можете использовать подход с одним заголовком, где вы можете напрямую включить один файл json.hpp (внутри single_include просто поместите файл nlohmann / json.hpp в корень вашего проекта).Или, если вы хотите включить тот, который имеет несколько файлов, вам нужно будет установить дополнительные заголовки включения в настройках проекта VS.

MyProj
  nlohmann\....
  main.cpp 

Затем в настройках проекта VS добавьте путь к вашему проекту вдополнительные включают каталоги.

...