环境和软件版本
系统版本:银河麒麟v10(内核版本5.10.0-8)
在银河麒麟官网下载。
qgis版本:qgis 3.26.0
源码下载地址:https://github.com/qgis/QGIS/archive/final-3_26_0.tar.gz
其他(一般为银河麒麟v10默认自带,不用管,如有问题可参照以下版本):
cmake version 3.16.3
Python 3.8.10
flex 2.6.4
bison (GNU Bison) 3.5.1
编译前准备
设置麒麟系统安全状态为Softmode (防止编译时出现权限不够问题)
sudo setstatus Softmode
getstatus
银河麒麟中默认没有安装g++:
安装g++:
sudo apt-get install build-essential
创建qgis 工作目录
mkdir -p ${HOME}/dev/QGIS
cd ${HOME}/dev/QGIS
将源码包 QGIS-final-3_26_0.tar.gz 放入工作目录解压
tar -zxf QGIS-final-3_26_0.tar.gz
安装依赖库:
sudo apt-get install bison ca-certificates ccache cmake cmake-curses-gui dh-python doxygen expect flex flip gdal-bin git graphviz grass-dev libexiv2-dev libexpat1-dev libfcgi-dev libgdal-dev libgeos-dev libgsl-dev libpdal-dev libpq-dev libproj-dev libprotobuf-dev libqca-qt5-2-dev libqca-qt5-2-plugins libqscintilla2-qt5-dev libqt5opengl5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5webkit5-dev libqt5xmlpatterns5-dev libqwt-qt5-dev libspatialindex-dev libspatialite-dev libsqlite3-dev libsqlite3-mod-spatialite libyaml-tiny-perl libzip-dev libzstd-dev lighttpd locales ninja-build ocl-icd-opencl-dev opencl-headers pdal pkg-config poppler-utils protobuf-compiler pyqt5-dev pyqt5-dev-tools pyqt5.qsci-dev python3-all-dev python3-autopep8 python3-dateutil python3-dev python3-future python3-gdal python3-httplib2 python3-jinja2 python3-lxml 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-pyqt5.qtwebkit python3-requests python3-sip python3-sip-dev python3-six python3-termcolor python3-tz python3-yaml qt3d-assimpsceneimport-plugin qt3d-defaultgeometryloader-plugin qt3d-gltfsceneio-plugin qt3d-scene2d-plugin qt3d5-dev qt5-default qt5keychain-dev qtbase5-dev qtbase5-private-dev qtpositioning5-dev qttools5-dev qttools5-dev-tools saga spawn-fcgi xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xvfb
开始编译
cd QGIS-final-3_26_0
mkdir build-master
cd build-master
ccmake ..
开启ccmake界面后 按c configure完成后 按g 生成makefile文件
输入 make 开始编译 编译时间较长在 3 到 5 小时
**注意**:每次出现问题需重新编译时 需要删除掉 build-master目录下的所有文件(之前的编译缓存) 不然会有意想不到的错误。
编译完成后运行 ./output/bin/qgis 打开编译好的qgis 出现启动界面完成
遇见的问题和解决方案
编译问题 qgis的编译不支持make -j 操作,会报错,只能用make 单核编译,速度较慢
关于报错找不到python,kylin默认是3.8.10版本的pytion,qgis3.26貌似识别不了这个版本的pytion,我尝试装了3.7版的就没有报错了。
步骤:
sudo apt update
sudo apt install build-essential zlib1g-dev libbz2-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
wget -c https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar -xzvf Python-3.7.4.tgz
cd Python-3.7.4
./configure --prefix=/usr/local/src/python37 # 配置安装位置
sudo make
sudo make install
sudo ln -s /usr/local/src/python37/bin/python3.7 /usr/bin/python3.7
sudo ln -s /usr/local/src/python37/bin/pip3.7 /usr/bin/pip3.7
sudo rm -rf /usr/bin/python3
sudo ln -s /usr/local/src/python37/bin/python3.7 /usr/bin/python3
sudo ln -s /usr/local/src/python37/bin/pip3.7 /usr/bin/pip3