linux 下安装json 库以及使用,剖析json
https://blog.csdn.net/weixin_36607844/article/details/78957807
https://www.cnblogs.com/skysoot/archive/2012/04/17/2453010.html
https://www.cnblogs.com/fengbohello/p/4066254.html
编译jsoncpp 库遇到的问题
https://www.shuzhiduo.com/A/A2dmxavb5e/
https://www.cnblogs.com/weiweisuhe/p/6266317.html
linux 下安装json库
- 下载jsoncpp。 http://sourceforge.net/projects/jsoncpp/files/
- 下载scons,这时一个构建工具,用来分析文件之间的依赖。http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download
- 解压 scons tar -xzvf scons
- 到scons目录中执行 python setup.py install
- 解压jsoncpp tar -xzvf jsoncpp
- 到jsoncpp目录下,执行 sudo scons platform=linux-gcc
- 将jsoncpp/include目录下的json 文件夹拷贝到 /usr/include/
- 将jsoncpp/libs/linux-gcc-4.9.1 目录下的 libjson_linux-gcc-4.9.1.a 拷贝到 /usr/local/lib 下,可以重命名
使用makefile编译jsoncpp
如果想要不使用scons来构建工程,而想要使用makefile,那也是可以编译的。要编译的文件全部位于 /src/lib_json ,其实也就 3个 *
.cpp 文件。makefile文件如下:
1 | g++ json_reader.cpp json_value.cpp json_writer.cpp -fPIC -Wall -shared -o ../../build/x64/release/libjson.so -I../../include -I. |
使用
jsoncpp 目录下docs目录里有demo,参考即可。
问题
- 解析json格式的时候,出现这个错误:relocation R_X86_64_32 against ‘.rodata’ can not be used when making a shared object;
错误提示最后需要加上 -fPIC 编译选项,需要在编译 jsoncpp 的时候加上 -fPIC 选项。放弃scons编译,使用cmake 编译 1. 新建编译目录
mkdir build
cd build
2. cmake
cmake -DCMAKE_CXX_FLAGS="-fPIC -Dnullptr=NULL"
3. make & make install
make -j4
sudo make install