linux 编译jsoncpp

/*----------补充:这个笔记的环境 #ubuntu 12.04 32bit  太老,可能不适用。--------------------------*/ 

这个是github 中的最新jsoncpp 源码,看网上有好多安装jsoncpp库时,用的老的版本,配合使用scons (这是一个构建品台,用来构建项目,类似于configure + makefile系统)来编译 jsoncpp,但这里的jsoncpp-master, 看里面的readme,

linux 编译jsoncpp_第1张图片

 

使用的是meson 和 ninja 这两个玩意也是类似 scons的一个构建工具,既然新版本要meson 和ninja

没办法,再安装下这两个玩意,用apt-get install找不到,去git-hub搜索找源码安装

https://github.com/open-source-parsers/jsoncpp

https://github.com/mesonbuild/meson

https://github.com/ninja-build/ninja

 

编译安装过程一路坎坷 注意:github中上面的几个项目都是在不停更新的,对环境的要求也是不停地更新,很有可能下载的最新版本按这个方法就编编译不过。注意看reademe

 

1.0安装之前,因为这几个工具都需要使用python3,并且版本不能太低,至少python3.5

ubuntu上自带的pythoh2.7,用apt-get install python3安装的是python3.2

所以,得安装一个python3.5以上。

/******

python --version

python3 --version

 

$ sudo add-apt-repository ppa:fkrull/deadsnakes

$ sudo apt-get update

$ sudo apt-get install python3.5

后面把装好的python3.5 在可执行文件目录下面把之前的python软连接直到python3.5

*********/

安装ninja:

./configure.py --bootstrap

然后把ninja 拷贝到 /usr/bin

 

安装meson :

python setup.py install   #注意这里python是刚安装好的python3.5

 

编译jsoncpp: 安装readme中的指示编译:

mkdir build-static

DESTDIR=./build-static //貌似后面没有加进配置中去

#BUILD_TYPE=debug #如果要编译debug版本,注释后面行,并取消当前行的注释

BUILD_TYPE=release

#LIB_TYPE=shared #编译动态链接库版本

LIB_TYPE=static #编译静态链接库版本

//正式配置(类似于configure)

/usr/local/bin/meson --buildtype ${BUILD_TYPE} --default-library ${LIB_TYPE} . build-${LIB_TYPE}ninja -v -C build-${LIB_TYPE} test

 

cd build-${LIB_TYPE}

//编译安装(make make install)

sudo ninja install

2.0编译jsoncpp时,有 错误unrecognized command line option “-std=c++11”

c++11需要 gcc 4.7以上才支持,

 

#g++ --version

#g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

所以需要升级gcc

#add-apt-repository ppa:ubuntu-toolchain-r/test

#apt-get update

#sudo apt-get install gcc-4.8 g++-4.8

安装完gcc4.8,设置为默认编译器 参考这一篇https://blog.csdn.net/arackethis/article/details/42212443

 

3.0还有一个插曲,因为上面刚刚把 python指向了python3.5, 原先是指向python2,

现在执行:add-apt-repository ppa:ubuntu-toolchain-r/test 就报语法错误,这个命令应该是用到了python脚本,pyhton3和python2差别有点大,没办法,在吧/usr/bin的python软连接改回来,用python3指向python3.5

 

但是在升级好gcc,开始编译,执行meson 配置的时候,问题又来了

linux 编译jsoncpp_第2张图片

好吧,pyhton还是得改为python3.5(记得整个编译完,再改回去)

 

最后还是被安装到默认目录中去了,没办法,手动拷贝一下吧

linux 编译jsoncpp_第3张图片

OK

你可能感兴趣的:(linux 编译jsoncpp)