jsoncpp Linux编译

编译指令

mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=debug -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=. -G "Unix Makefiles" ../..
make


动态库存放地址jsoncpp-master/build/debug/src/lib_json



jsoncpp0.5.0版本采用scons进行编译
wget https://sourceforge.net/projects/jsoncpp/files/jsoncpp/0.5.0/jsoncpp-src-0.5.0.tar.gz/download
进入解压文件夹
scons platform=linux-gcc
root@localhost jsoncpp-src-0.5.0]# cd libs/
[root@localhost libs]# ls
linux-gcc-4.8.5
[root@localhost libs]# cd linux-gcc-4.8.5/
[root@localhost linux-gcc-4.8.5]# ls
libjson_linux-gcc-4.8.5_libmt.a  libjson_linux-gcc-4.8.5_libmt.so


注意:

In file included from /home/jsoncpp-master/src/test_lib_json/jsontest.cpp:7:0:
/home/jsoncpp-master/src/test_lib_json/jsontest.h: 在成员函数‘JsonTest::TestResult& JsonTest::TestResult::operator<<(const T&)’中:
/homjsoncpp-master/src/test_lib_json/jsontest.h:87:37: 错误:‘hexfloat’不是‘std’的成员
     oss << std::setprecision(16) << std::hexfloat << value;
                                     ^
make[2]: *** [src/test_lib_json/CMakeFiles/jsoncpp_test.dir/jsontest.cpp.o] 错误 1
make[1]: *** [src/test_lib_json/CMakeFiles/jsoncpp_test.dir/all] 错误 2

说明当前的编译器不支持hexfloat语言特性,这是C11最新版本的特性,需要升级编译器