QGIS Ubuntu17.04 编译过程
1.选择开发环境
由于考虑到虚拟机可以创建快照并回滚,于是我选择在虚拟机上进行qgis的编译。
起初,我尝试在Ubuntu16.04( xenial )上进行源码编译,但是由于xenial存在GDAL库版本太低的情况(具体错误描述如下),故最后我选择在Ubuntu 17.04(zesty)上进行编译。
错误1:Plain xenial's GDAL for instance is to old and we build with GDAL2 from UbuntuGis(官网解释)
解决方案:虽然官网提示可以用GDAL2解决,但是由于找不到依赖于GDAL2的众多软件安装命令,故选择换用Ubuntu17.04 (zesty)。
2.更新软件源
- 更新软件源非常重要。
sudo apt-get update
- 在一次编译过程我忘记了更新软件源,导致最后编译时,报出了很多与软件版本有关的错误,由于涉及到的软件过多,我只能选择回滚。
错误2:忘记更新软件源
解决方案:在安装前更新软件源。
3.安装软件
sudo apt-get install bison ca-certificates cmake dh-python doxygen flex gdal-bin git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal-dev libgeos-dev libgsl-dev libpq-dev libproj-dev libqca-qt5-2-dev libqca-qt5-2-plugins libqt5opengl5-dev libqt5scintilla2-dev libqt5sql5-sqlite libqt5svg5-dev libqt5webkit5-dev libqt5xmlpatterns5-dev libqwt-qt5-dev libspatialindex-dev libspatialite-dev libsqlite3-dev libsqlite3-mod-spatialite libzip-dev lighttpd locales ninja-build pkg-config poppler-utils pyqt5-dev pyqt5-dev-tools pyqt5.qsci-dev python3-all-dev python3-dev python3-future python3-gdal python3-mock python3-nose2 python3-psycopg2 python3-pyqt5 python3-pyqt5.qsci python3-pyqt5.qtsql python3-pyqt5.qtsvg python3-sip python3-sip-dev python3-termcolor python3-yaml qt5keychain-dev qtbase5-dev qtpositioning5-dev qtscript5-dev qttools5-dev qttools5-dev-tools spawn-fcgi txt2tags xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xvfb cmake-curses-gui expect
4.下载QGIS源码
- 创建开发目录
mkdir -p ${HOME}/dev/cpp
- 下载当前源码: 这里有两种方法一种是匿名方法,一种是开发者方法。由于我们不是源码开发者,也没有提交QGIS源代码改动的权限,所以我们使用匿名git方法。
cd ${HOME}/dev/cpp
git clone git://github.com/qgis/QGIS.git
错误3:之前在使用官方给出的2.18(release)代码版本时,出现了各种各样的依赖错误,所以我决定还是跟着官方教程走,git最新的代码。
解决方案:使用git下载最新代码。
5.编译
- ccmake
cd ${HOME}/dev/cpp
cd QGIS
mkdir build-master
cd build-master
ccmake ..
//在界面成功打开过后,按c(configure)开始配置
//完成后,按g(generate)开始生成(注意g选项如果没有出现,要多按几次c)
//生成完成后,按q(quit)退出
错误4:官方教程推荐使用一个其他有权限写的目录来代替ccmake中的CMAKE_INSTALL_PREFIX的默认设置/usr/local,但是我改变过后安装出现了很多错误,所以我还是选择了默认路径
解决方案:不改变CMAKE_INSTALL_PREFIX的默认设置/usr/local(既按照上述操作进行)
- 开始安装
sudo make install
错误5:可能会出现如下错误 lrelease: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/lrelease': No such file or directory
解决方案:
sudo apt-get install qt4-dev-tools --no-install-recommends
sudo apt-get install qt4-linguist-tools
6.启动QGIS
cd /usr/local/bin
./qgis
错误6:可能会出现如下错误 error while loading shared libraries
解决方案:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ ,然后重启。
//注意如果你的路径改变了,上述的路径也要改变