2016-08-19 5 views
1

Когда я запускаю следующий код:Неопределенная ссылка Json :: Значение и Json :: Читатель

#include <cstdio> 
#include <iostream> 
#include <fstream> 
#include <cstring> 
#include <C:\Users\User\Documents\jsoncpp-master\dist\json\json.h> 
#include <C:\Users\User\Documents\jsoncpp-master\dist\json\json-forwards.h> 

using namespace std; 

int main(){ 
    Json::Value root; 
    Json::Reader reader; 

    ifstream file("test.json"); 

    return 0; 
} 

я получаю следующие ошибки:

undefined reference to `Json::Reader::Reader()' 
undefined reference to `Json::Value::Value(Json::ValueType)' 

Я пытаюсь написать программу для чтения файл JSON, и этот код также должен выводить данные в файле JSON, который будет использоваться другим модулем C++.

UPDATE

#include <cstdio> 
#include <iostream> 
#include <fstream> 
#include <cstring> 
#include "dist\jsoncpp.cpp" 
using namespace std; 

int main(){ 

    Json::Value root; 
    Json::Reader reader; 

    ifstream file("test.json"); 

    return 0; 
} 

Я измененный код, чтобы удалить полную ссылку и вставил DIST папки я получил после того, как я побежал:

python amalgamate.py 

И я вошел в заголовочные файлы в C: \ MinGW \ include

Теперь я получаю много ошибок в файле jsoncpp.cpp (это файл, который я получил после запуска команды python, и я вообще не изменил его). Все ошибки сказать то же самое сообщение, которое:

first defined here 
+0

Где определяется класс 'Json'? – MicroCheapFx

+0

** Linker ** погрешность. Вы должны связаться с библиотекой jsoncpp. – Jarod42

+1

[OT]: Не используйте полный путь для включения. Укажите в своих сборках дополнительные каталоги для поиска заголовков. – Jarod42

ответ

1

Это не достаточно просто включить ч файлы в исходном коде. Вам нужно скомпилировать jsoncpp.cpp в своем проекте. Следуйте за https://github.com/open-source-parsers/jsoncpp#generating-amalgamated-source-and-header и добавьте jsoncpp.cpp, json/json.h, json/forwards.h в свой проект.

+0

благодарит за ссылку. Я сделал, как сказано в инструкциях, и теперь я получаю еще одну ошибку, как показано в обновлении. – user9492428

+0

@ user949: вы не делали, как сказано в инструкциях. Почему вы # включаете файл '.cpp'? –

+0

@LightnessRacesinOrbit в инструкции он говорит 'dist \ jsoncpp.cpp' исходный файл, который должен быть добавлен в ваш проект – user9492428