2

When I run the following code:

#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;
}

I get the following errors:

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

I am trying to write a program to read the JSON file and this code also has to output the data in the JSON file to be used by another C++ module.

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;
}

I have the changed the code to remove the full link and inserted the dist folder I got after I ran:

python amalgamate.py

And I entered the header files into C:\MinGW\include

I am now getting a lot of errors in the jsoncpp.cpp file (this is the file I got after running the python command and I did not change it at all). All the errors say the same message, which is:

first defined here
user9492428
  • 603
  • 1
  • 9
  • 25

1 Answers1

2

It's not enough to just include h files to your source code. You need to compile jsoncpp.cpp in your project. Please follow https://github.com/open-source-parsers/jsoncpp#generating-amalgamated-source-and-header and add jsoncpp.cpp, json/json.h, json/forwards.h to your project.

tty6
  • 1,203
  • 11
  • 30