How to compile JSON-C – JSON implementation in C

JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects. It aims to conform to RFC 7159.

$ git clone git://github.com/json-c/json-c.git 

Compiling latest version of json-c

Check the latest branch available using “git branch -r” command and checkout to this branch as,

$ cd json-c 
$ git branch -r 
$ git checkout -b json-c-0.14 origin/json-c-0.14 
$ mkdir build 
$ cmake -DCMAKE_INSTALL_PREFIX=build . 

Above commands compiles json-c which can be installed in a “build” directory as,

$ make all test install 

You can see it got compiled and installed as,

$ tree build/
build/
├── include
│   └── json-c
│       ├── arraylist.h
│       ├── debug.h
│       ├── json_config.h
│       ├── json_c_version.h
│       ├── json.h
│       ├── json_inttypes.h
│       ├── json_object.h
│       ├── json_object_iterator.h
│       ├── json_pointer.h
│       ├── json_tokener.h
│       ├── json_types.h
│       ├── json_util.h
│       ├── json_visit.h
│       ├── linkhash.h
│       └── printbuf.h
└── lib
    ├── cmake
    │   └── json-c
    │       ├── json-c-config.cmake
    │       ├── json-c-targets.cmake
    │       └── json-c-targets-debug.cmake
    ├── libjson-c.so -> libjson-c.so.5
    ├── libjson-c.so.5 -> libjson-c.so.5.0.0
    ├── libjson-c.so.5.0.0
    └── pkgconfig
        └── json-c.pc

Compiling 0.12 version and earlier versions

$ git checkout -b json-c-0.12 origin/json-c-0.12 
$ mkdir build 
$ sudo apt-get install libtool
$ libtoolize
$ aclocal
$ autoheader
$ ./configure --prefix=./build
$ make
$ make install

Leave a Comment