QGIS 3.44 在麒麟编译全流程

QGIS 3.44 在麒麟编译全流程 1. 引言本文记录基于 QGIS 3.44 在银河麒麟和华为麒麟操作系统上完成编译验证的完整过程涵盖环境准备、依赖安装、编译配置、常见问题与验证结果供后续在同类国产化平台上复现时参考。2. 环境准备在开始编译前需要确认操作系统版本、架构以及基础开发工具链是否就绪。以下为本次验证使用的环境信息。操作系统银河麒麟、华为麒麟QGIS 版本3.44架构根据实际平台确认 arm64编译器GCC、G 及 CMake 等基础工具3. 依赖安装QGIS 编译依赖较多建议使用系统包管理器统一安装。以下为关键依赖项。Qt 5 开发包GDAL、GEOS、PROJ 等地理空间库SQLite、PostgreSQL 客户端库Python 3 开发头文件其他构建工具与可选插件依赖4. 编译配置4.1 系统设置与基础依赖在开始编译前先关闭系统休眠与锁屏避免长时间编译过程中系统进入休眠状态导致任务中断。# 系统设置不休眠电源选项全部改为从不 gsettings set org.ukui.screensaver idle-activation-enabled false gsettings set org.ukui.screensaver lock-enabled false 更新软件源并安装基础编译工具链 sudo apt update sudo apt install -y build-essential zlib1g-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev pkg-config cmake swig bison byacc libcurl4 libcurl4-openssl-dev 修复 yacc 符号链接 sudo rm /usr/bin/yacc sudo ln -s /usr/bin/bison /usr/bin/yacc sudo apt install -y libtiff-dev4.1 编译 Python 3.12.5QGIS 需要 Python 3 开发环境这里编译安装 Python 3.12.5。步骤 1 和 2 可以同时进行编译。# 编译 Python 3.12.5 ./configure --enable-optimizations --enable-shared \ CFLAGS-fPIC -O2 -Wno-error -Wno-coverage-mismatch -fno-profile-arcs -fno-test-coverage \ CXXFLAGS-fPIC -O2 -Wno-error -Wno-coverage-mismatch -fno-profile-arcs -fno-test-coverage \ LDFLAGS-fPIC -Wno-error -Wno-coverage-mismatch sudo make -j$(nproc) sudo make install 替换系统默认 Python 链接 sudo rm /usr/bin/python3 sudo ln -s /usr/local/bin/pip3.12 /usr/bin/pip sudo ln -s /usr/local/bin/pip3.12 /usr/bin/pip3 sudo ln -s /usr/local/bin/python3.12 /usr/bin/python3 sudo ln -s /usr/local/bin/python3.12 /usr/bin/python sudo ln -s /usr/local/lib/libpython3.12.so.1.0 /usr/lib/aarch64-linux-gnu/libpython3.12.so.1.04.2 编译 Python 2.7.18编译 QtWebEngine 需要 Python 2.7这里编译安装 Python 2.7.18。wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz ./configure --prefix/usr/local/python27 --enable-optimizations --enable-shared \ CFLAGS-fPIC -O2 -Wno-error -Wno-coverage-mismatch -fno-profile-arcs -fno-test-coverage \ CXXFLAGS-fPIC -O2 -Wno-error -Wno-coverage-mismatch -fno-profile-arcs -fno-test-coverage \ LDFLAGS-fPIC -Wno-error -Wno-coverage-mismatch sudo make -j$(nproc) sudo make install sudo ln -s /usr/local/python27/bin/python2.7 /usr/bin/python2 sudo ln -s /usr/local/python27/lib/libpython2.7.so.1.0 /usr/lib/aarch64-linux-gnu/libpython2.7.so.1.04.4 编译 Qt 5.15.2步骤 3 和 4 可以同时进行。编译 QtWebEngine 时可能会遇到类型不兼容问题需要修改源码中的 libjpeg_turbo。# 安装 Python 包管理工具 sudo pip3 install setuptools wheel -i https://pypi.tuna.tsinghua.edu.cn/simple sudo pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple 安装 Qt 编译依赖 sudo apt-get install libx11-* libx11* libxcb-* libxcb* libxkbcommon-dev libxkbcommon-x11-dev libclang-dev libgl1-mesa-dev libglu1-mesa-dev libxdamage-dev sudo apt install -y ruby ruby-dev sudo apt install -y perl perl-modules 编译 ninja编译 QtWebEngine 需要 cd /home/zh/qt-5.15.2/qtwebengine/src/3rdparty/ninja sudo python3 configure.py sudo ./configure.py --bootstrap sudo cp ./ninja /usr/bin 增加系统缓存编译 QtWebEngine 默认 8G 不够用 sudo fallocate -l 24G /swapfile_1 sudo chmod 600 /swapfile_1 sudo mkswap /swapfile_1 sudo swapon /swapfile_1 编辑 /etc/fstab最后一行加入/swapfile_1 swap swap defaults 0 0 sudo swapon --show # 查看缓存是否生效 安装更多 Qt 依赖 sudo apt install libdbus-1-dev gperf libnss3-dev2:3.49.1-1kylin1.5 sudo apt install -y libdrm-dev libxcomposite-dev libxcursor-dev libxi-dev sudo apt install -y libx11-xcb-dev libxext-dev libxfixes-dev libxrandr-dev libxrender-dev libxtst-dev flex 编译 Qt mkdir build cd build ../configure -opensource -confirm-license -shared -nomake examples -nomake tests -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -openssl-linked -fontconfig -xcb -opengl desktop -no-use-gold-linker -verbose -platform linux-aarch64-gnu-g -I/usr/local/include/python3.12 -L/usr/local/lib/libpython3.12.so sudo make -j$(nproc) sudo make install 配置环境变量 vim ~/.bashrc export PATH/usr/local/Qt-5.15.2/bin:$PATH source ~/.bashrc4.5 编译 PROJ、GEOS、GDAL、Draco这些是 QGIS 的核心地理空间依赖库步骤 4 与步骤 3 可以同时进行。下面分别给出 PROJ、GEOS、GDAL 和 Draco 的编译安装命令。# 编译 PROJ cd /home/zh/proj-9.4.0 cmake -DCMAKE_INSTALL_PREFIX/usr -DCMAKE_INSTALL_LIBDIRlib/aarch64-linux-gnu \ -DBUILD_SHARED_LIBSON -DBUILD_TESTINGOFF . sudo make -j$(nproc) sudo make install 编译 GEOS cd /home/zh/geos-3.12.2 cmake -DCMAKE_INSTALL_PREFIX/usr -DCMAKE_INSTALL_LIBDIRlib/aarch64-linux-gnu -DBUILD_SHARED_LIBSON -DBUILD_TESTINGOFF . sudo make -j$(nproc) sudo make install 安装 GDAL 依赖 sudo pip3 install numpy1.26.4 -i https://pypi.tuna.tsinghua.edu.cn/simple sudo apt-get install libgeotiff-dev libgeotiff5 sudo apt install libqhull-dev libqhull-r7 编译 GDAL检查 numpy 头文件路径可能是 core/include 或 _core/include cd /home/zh/gdal-3.10.0 mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX/usr/local -DCMAKE_INSTALL_LIBDIRlib/aarch64-linux-gnu -DBUILD_SHARED_LIBSON -DCMAKE_BUILD_TYPERelease -DPython_NumPy_INCLUDE_DIRS/usr/local/lib/python3.12/site-packages/numpy/core/include -DPython_ROOT/usr/local/lib/python3.12 sudo make -j$(nproc) sudo make install 复制 GDAL 配置到系统目录 sudo cp /usr/local/lib/cmake/gdal/* /usr/lib/aarch64-linux-gnu/cmake/gdal sudo cp /usr/local/lib/pkgconfig/gdal.pc /usr/lib/aarch64-linux-gnu/pkgconfig 安装空间数据库依赖 sudo apt-get install libspatialite-dev libspatialindex-dev sudo pip3 install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple 编译 Draco cd /home/zh/draco-main mkdir build cd build cmake -DCMAKE_POSITION_INDEPENDENT_CODEON -DCMAKE_BUILD_TYPERelease -DBUILD_SHARED_LIBSON .. sudo make -j$(nproc) sudo make install4.6 编译 QGIS上述依赖库编译安装完成后即可开始编译 QGIS 本体。以下为 QGIS 3.44 的编译配置与安装步骤。# 下载 QGIS 源码 cd /home/zh wget https://download.qgis.org/downloads/qgis-3.44.0.tar.bz2 tar -xjf qgis-3.44.0.tar.bz2 cd qgis-3.44.0 创建构建目录 mkdir build cd build 配置 QGIS 编译参数 cmake .. -DCMAKE_BUILD_TYPERelease -DCMAKE_INSTALL_PREFIX/usr/local/qgis -DCMAKE_PREFIX_PATH/usr/local/Qt-5.15.2 -DPYTHON_EXECUTABLE/usr/local/bin/python3.12 -DPYTHON_INCLUDE_DIR/usr/local/include/python3.12 -DPYTHON_LIBRARY/usr/local/lib/libpython3.12.so -DGDAL_CONFIG/usr/local/bin/gdal-config -DGEOS_CONFIG/usr/bin/geos-config -DPROJ_INCLUDE_DIR/usr/include -DWITH_BINDINGSON -DWITH_GRASSOFF -DWITH_SERVEROFF 编译并安装 make -j$(nproc) sudo make install 配置环境变量 echo export PATH/usr/local/qgis/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/qgis/lib:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc5. 验证结果编译安装完成后启动 QGIS 并验证核心功能是否正常。本次在银河麒麟和华为麒麟上均已完成编译验证QGIS 3.44 可正常启动并运行基础地理数据处理功能。6. 总结本文记录了 QGIS 3.44 在银河麒麟和华为麒麟上的编译验证过程。整体流程与常规 Linux 平台类似主要差异集中在依赖安装和架构适配方面。希望这份记录能为后续在国产化平台上编译 QGIS 提供参考文章最上面有所有依赖包下载sip.rar为需要替换的sipui执行命令.txt是因为pyuic_wrapper.sh即使修改为可执行有些机器也不行没有执行权限需要将txt的每个命令全部单步执行之后再重新编译qgis才可以