编译webkit需要用到cmake3.2以上的版本,但是ubuntu默认安装的cmake版本是2.8,所以需要升级到3.2以上。
网上看了很多方法,但是都是千篇一律,都是抄来抄去!
网上的方法基本上都是类似下面的
sudo apt-get install software-properties-mmon
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install cmake
sudo apt-get upgrade
cmake ——version
但是cmake死活都不升级,cmake版本还是2.8,既是卸载掉cmake再这样安装,还是一样的2.8版本,Fuck!
网上又提供了另外一种方法,就是下载cmake源码包,自己手动安装。
按照网上的按照方法
wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz
tar xf cmake-3.2.2.tar.gz
cd cmake-3.2.2
./configure
make
按照上面的步骤,肯定会遇到一些问题的,首先,如果报错跟编译器相关的错误,那就先安装gcc-4.8和g++-4.8,如下:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
然后执行export CXX=g++-4.8
再次执行./configure
会发现最开始会有如下打印
也就是说使用的gnu++1y的标准,但是configure到最后,会报如下错误:
所以需要指定C标准为C++11,在当前shell执行export CXXFLAGS="-std=c++11",
然后再次执行./configure,然后再执行make,
最后大功告成。
附:
我升级cmake是为了编译webkit,编译方法:
https://trac.webkit.org/wiki/WPE
需要安装ninja,安装方法:
https://www.jianshu.com/p/d118615c1943
再次编译webkit,
cmake -DPORT=WPE -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja
会报如下错误:
用如下将gcc升级即可
sudo apt-get install gcc-5.0
Please verify ICU install prefix and make sure icu-config works.
sudo apt-get install libicu-dev
apt-get install build-essential libgtk2.0-dev
原因:有两个路径下都有png.h,分别是/usr/local/libpng/include/png.h和/usr/local/libpng/include/libpng15/png.h
解决办法:sudo mv /usr/local/libpng/include/libpng15/png.h /usr/local/libpng/include/libpng15/png.h_bak