Fatal error with jsoncpp while compiling

Nevin picture Nevin · Apr 26, 2016 · Viewed 20.6k times · Source

Am new to cpp but as per project requirements i need to consume rest api and parse the response. Am able to call api & capture the response but not able to parse it using JSONCPP library.

These are the steps i followed to parse json:

  1. Used this command to install libjsoncpp in ubuntu sudo apt-get install libjsoncpp-dev
  2. Downloaded json source files and copied json header files into project folder
  3. Compiling cpp using this command gcc -o test.out test.cpp -ljson

it is always giving

fatal error: json/json.h: No such file or directory
 #include <json/json.h>
                       ^
compilation terminated.

Didn't find any solution since 2 days. Tried this also. Can any one tell me where i am going wrong...

Answer

John Zwinck picture John Zwinck · Apr 26, 2016

Since you're on Ubuntu I went to their package website and found the file list for the package you installed: http://packages.ubuntu.com/trusty/amd64/libjsoncpp-dev/filelist

The first few files make the problem clear:

/usr/include/jsoncpp/json/autolink.h
/usr/include/jsoncpp/json/config.h
/usr/include/jsoncpp/json/features.h
/usr/include/jsoncpp/json/forwards.h
/usr/include/jsoncpp/json/json.h

Since compilers usually look in /usr/include, you need to provide the rest of the path, i.e.:

#include <jsoncpp/json/json.h>

You could also have found this file on your running system after installing the package by running this command:

locate json.h

Or using the dpkg command after installing the package.

And when you link your program, you need to say -ljsoncpp, not -ljson.