ubuntu16.04 qgis3.1.0编译

参考 https://stackoverflow.com/questions/26305097/setup-gdb-with-qtcreator

https://blog.csdn.net/lovefqing/article/details/7568533

https://blog.csdn.net/u014124220/article/details/51901638

一、前期准备

建议入门者全程使用root用户!!!

1.编辑软件源文件 /etc/apt/sources.list

解注所有以 "deb"开头的行,为了是所有的软件都能下载

2.为了解决gdal版本过低的问题,需要添加ubtuntugis支持,在终端输入以下命令即可

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntugis/ppa

更新源

sudo apt-get update

3.安装环境:

直接在终端输入该命令即可

apt-get install bison ca-certificates ccache cmake cmake-curses-gui dh-python doxygen expect 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-dateutil python3-dev python3-future python3-gdal python3-httplib2 python3-jinja2 python3-markupsafe python3-mock python3-nose2 python3-owslib python3-plotly python3-psycopg2 python3-pygments python3-pyproj python3-pyqt5 python3-pyqt5.qsci python3-pyqt5.qtsql python3-pyqt5.qtsvg python3-requests python3-sip python3-sip-dev python3-six python3-termcolor python3-tz python3-yaml qt5-default qt5keychain-dev qtbase5-dev qtpositioning5-dev qttools5-dev qttools5-dev-tools spawn-fcgi txt2tags xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xvfb

4.设置ccache加快编译时间:

cd /usr/local/bin
sudo ln -s /usr/bin/ccache gcc
sudo ln -s /usr/bin/ccache g++

5.创建存放qgis路径并进入该目录:

mkdir -p ${HOME}/dev/cpp
cd ${HOME}/dev/cpp

二、编译过程

1.将qgis3.1.0版本移动到${HOME}/dev/cpp目录下,开始编译配置:

cd QGIS
mkdir build-master
cd build-master
ccmake ..

进入cmake界面后,CMAKE_BUILD_TYPE 设置成 Debug,按c进行配置检查,按g生成代码

2.make进行编译

make -jX

此时可能会出现找不到"setObsolete"的错误,这是因为该方法时qt5.9以后才出现的,而开始安装的qt版本为5.5,因此不支持该方法。进入QGIS/src/core/qgsvectorlayer.cpp将该句话注释即可。

3.pyuic-wrapper.sh: Permission denied 错误

没有使用root用户的情况下,在快编译完成时会提示错误,错误信息如下

[ 94%] Generating ui_widgetMerge.py 
/bin/sh: 1: ../../../../../scripts/pyuic-wrapper.sh: Permission denied 
make[2]: * [python/plugins/GdalTools/tools/ui_widgetMerge.py] Error 126

解决方法: 
修改文件权限为777

chmod 777 pyuic-wrapper.sh

三、运行

1.运行可以通过以下方法进行:

1)当前目录直接运行

./output/bin/qgis

2)make安装运行

make install
qgis

四、qtcreator编译

1.安装qtcreator

2.在qtcreator中打开qgis项目的CMakeLists.txt

3.进行configure和build即可


猜你喜欢

转载自blog.csdn.net/lebusini/article/details/80246773