中标麒麟编译qgis源码

根据公司工作安排需要在中标麒麟下编译qgis3.4.7,把编译的过程随手记录一下。
QGIS项目主页:http://www.qgis.org/en/site/
QGIS源码下载:添加链接描述https://github.com/qgis/QGIS/tree/release
QGIS官方编译参考文档:https://github.com/qgis/QGIS/blob/master/INSTALL?tdsourcetag=s_pcqq_aiomsg
cmake基础知识:https://blog.csdn.net/m0_37554445/article/details/104974552
将windows环境下vs项目移植到中标麒麟环境qt:https://blog.csdn.net/m0_37554445/article/details/104970695

编译过程中使用到的linux命令

1.查看Linux位数:getconf LONG_BIT 2.删除文件夹rm –rf3.安装run文件./xxxxx.run4.进行镜像文件挂载:cd /home/softmount -o loop CentOS-6.5-x86_64-bin-DVD1.iso /mnt 5.删除自带的yum源cd /etc/yum.repos.d/rm -rf *6.创建新的yum源配置文件并添加配置信息:vim centos6.repo7.进行验证yum源配置成功:清除缓存yum源yum clean all查看已配置好的yum源信息“yum repolist8重启网卡service network restart9.解压zip文件Unzip 文件10 解压bz2tar jxvf 11.解压xztar xvf  +文件名(tar.xz) 12 yum查询数据包rpm -qa|grep13.强制删除rpm -e –nodeps14列出所有安装包yum list后,有的会是红色,有的是绿色,红色代表有最新版,需要更新,绿色代表已经是最新版本,没有颜色的代表没有装的15.列出所有已安装的软件包 yum list installed 16解压 xz 格式文件方法一:需要用到两步命令,首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,其次用 tar 命令将 linux-3.12.tar 完全解压。xz -d linux-3.12.tar.xztar -xf linux-3.12.tar方法二(推荐)tar -Jxf linux-3.12.tar.xz17 删除文件rm -f /var/run/yum.pid18 创建软连接 ln -s 源文件 目标文件

所需的构建工具

  • CMake> = 3.0.0
  • Flex> = 2.5.6
  • Bison> = 2.4
  • Python 3

所需的构建依赖项:

  • Qt >= 5.9.0
  • Proj >= 4.9.3
  • GEOS >= 3.4
  • Sqlite3 >= 3.0.0
  • SpatiaLite >= 4.2.0
  • libspatialindex
  • GDAL/OGR >= 2.1
  • Qwt >= 5.0 & (< 6.1 with internal QwtPolar)
  • expat >= 1.95
  • QScintilla2
  • QCA
  • qtkeychain (>= 0.5)
  • libzip

构建工具和依赖库下载地址

1.cmake

下载地址:https://cmake.org/files/
安装配置:

mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.12.2/bin/*  /usr/bin/

2.bison

下载地址:ftp://prep.ai.mit.edu/pub/gnu/bison/bison-2.3.tar.gz
安装配置:

tar -xzvf bison-2.3.tar.gz  //解压缩
cd bison-2.3                //移动到解压后的文件夹
./configure
make
make install

3.flex

下载地址:https://linux.softpedia.com/get/Programming/Interpreters/?utm_source=spd&utm_campaign=postdl_redir

4.proj

下载地址:https://proj.org/download.html

5.GEOS

下载地址 :https://trac.osgeo.org/geos/wiki

6.Sqlite3

优先检测系统中是否已安装sqlit,如果没有安装则自己再装的sqlit3,如果重复安装在编译过程中会出现问题。

下载地址:https://sqlite.org/download.html

7. Gdal

下载地址:http://download.osgeo.org/gdal/

8.qwt

下载地址:https://sourceforge.net/projects/qwt/files/qwt/

cd qwt
qmake 生成 makefile
make && make install

9.安装qt

我使用的qt是qt5.11.2
下载地址:http://download.qt.io/archive/qt/
安装配置:./xxxxx.run;
需要配置qmake环境。

10.安装pg Gem时找不到libpq-fe.h头文件***

对于Ubuntu系统:
sudo apt-get install libpq-dev
在Red Hat Linux(RHEL)系统上:
yum install postgresql-devel
对于Mac Homebrew:
brew install postgresql
对于Mac MacPorts PostgreSQL:
gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
对于OpenSuse:
zypper in postgresql-devel

11.安装python (可自己安装,也可以yum下载)

tar -zxvf Python-3.7.0.tgz
mkdir /usr/local/Python37
cd Python-3.7.0
./configure --prefix=/usr/local/python37   //配置
make && make install   //编译并且安装

安装时报错ModuleNotFoundError: No module named '_ctypes’的解决办法:
yum install libffi-devel

11.1安装完成后需要创建软连接

ln -s /usr/local/python37/bin/python3.7 /usr/bin/python37
ln -s /usr/local/python37/bin/pip3.7 /usr/bin/pip37

11.2测试安装的Python是否可用

[root@mini Python-3.7.0]# python3
Python 3.7.0 (default, Jul 28 2018, 22:47:29)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello world!")
hello world!
>>> exit()
[root@mini Python-3.7.0]# pip3 --version     //如果还没有安装,会出现提示如何安装的命令
pip 10.0.1 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

12.安装sip (我用的版本是V4.19.14)

下载地址:https://riverbankcomputing.com/software/sip/download

 sip -V检查版本tar -zxvf sip-4.19.8.tar.gz   python3 configure.py   --sip-module PyQt5.sip  //必须添加这个,否则运行 import PyQt5.Core 会异常 sudo make  -j8(或者你电脑的核心数)sudo make install

安装完成后,可分别在终端和Python中查验sip版本是否一致

#终端查看sip版本
sip -V
#查看Python调用的sip版本(通过上述编译安装操作得到的)
python
import sip
print(sip.SIP_VERSION_STR)

13.安装PyQt (我用的版本是V4.11.3)

tar zxvf PyQt-gpl-5.3.2.tar.gz
cd PyQt-gpl-5.11.2/
python configure.py –qmake /opt/Qt5.11.1/5.3/gcc_64/bin/qmake –sip-incdir ../sip-4.19.4/siplib //也可以将qmke文件复制
到,/usr/bin/目录下,就不用添加-qmake
make -j4 //建议添加-j 要不然编译会很久
sudo make install

可设置创建软连接:
sudo ln -s /usr/lib/python3.4/site-packages/PyQt5 /usr/lib/python3.4/PyQt5

14.QScintilla (我用的版本是V2.11)

安装配置:

tar -zxvf QScintilla_gpl-2.11.tar.gz
cd QScintilla_gpl-2.11/
cd ./Qt4Qt5
qmake qscintilla.pro
make
make install
.....
cd ../Python
python configure.py
make
sudo make install

15.spatialite下载地址

http://www.gaia-gis.it/gaia-sins/libspatialite-sources/

编译过程

1.开始编译配置

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

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

2.make进行编译

make -j8
make install

3.运行

1)当前目录直接运行
./output/bin/qgis

2)make安装运行
qgis

QQ交流群

中标麒麟编译qgis源码+PyQt环境相关推荐

  1. idea 编译spring_Spring 源码阅读环境的搭建

    " 前言 本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑!​当前版本:5.3.2-SNAPSHOT. 环境准备 Git JDK master 分支需要 JDK 11 5.2. ...

  2. CMake编译Nginx源码

    背景 最近打算学习nginx源码,但使用clion IDE查看不支持跳转.因为源码是使用autotool维护的,而clion需要CMake管理项目.着手编译nginx源码. 环境 os : ubunt ...

  3. QGIS源码编译步骤详解——官方新方案

    目录 源码下载 环境下载 Cygwin64 OSGeo4W CMAKE Visual Studio 2017 环境配置 配置 编译   方案详细可见源码文件中INSTALL.md. 源码下载   QG ...

  4. linux qgis源码编译,ubuntu安装QGIS(一)

    QGIS项目简介 QGIS是一个用户界面友好的桌面地理信息系统,可运行在Linux.Unix.Mac OSX和Windows等平台之上.QGIS是基于Qt,使用C++开发的一个用户界面友好.跨平台的开 ...

  5. 记一次失败的Windows环境编译Nginx源码

    最近想学习下nginx的源码,之前在linux环境编译安装过多次,在windows环境还是第一次尝试,遇到了不少问题,记录一下.可惜的是编译成功后,在最后运行的时候还是会报错,如果有人遇到类似的问题希 ...

  6. 在Linux环境下怎么编译Android源码?

    http://www.linuxidc.com/Linux/2011-10/44236.htm JDK的安装: Linux Mint 13 中自带有OpenJDK,但这个不是我想要的,我们要的是sun ...

  7. spring源码编译之gradle环境搭建(编译spring源码真的脑阔疼)

    官网 Gradle | Installation Gradle Distributions 下载 配置环境变量: GRADLE_HOME:D:\software\gradle-6.0.1-all\gr ...

  8. v58.03 鸿蒙内核源码分析(环境脚本) | 编译鸿蒙原来很简单 | 百篇博客分析HarmonyOS源码

    颜渊问仁.子曰:"克己复礼为仁.一日克己复礼,天下归仁焉.为仁由己,而由人乎哉?"颜渊曰:"请问其目."子曰:"非礼勿视,非礼勿听,非礼勿言,非礼勿动 ...

  9. Ubuntu18.04系统编译android源码环境配置

    1. 前言 我们做andorid系统开发,肯定时刻与源码打交到,特别是做新项目时,最重要的事情就是下载源码,然后配置环境编译,假如你的电脑是刚重装系统过,一个全新的开发环境,那么首要解决的事情就是完善 ...

最新文章

  1. 给表增加字段 本地测试正常 上传到服务器不正常
  2. html模板编辑器,可视化编辑网站模板
  3. django 快速实现完整登录系统(cookie)
  4. 指向结构体的指针别名
  5. centos7修改主机名_25个步骤完成centos7系统从0到1部署
  6. 常用Apache Commons工具类备忘
  7. c#连接远程sqlserver2008_C#用代码控制网络断开与重连
  8. 大咖分享 | 产品经理如何成长进阶?
  9. 《集体智慧编程》数学公式
  10. python学习day33 hmac模块 socketserver模块
  11. python语义网络图_知识图谱之语义网络篇
  12. 计算机关机键是,电脑关机快捷键是什么
  13. 基于华为云轻松搭建属于自己的网站 (Linux,Apache,MySQL,PHP)
  14. android4.4.3版本root,EMUI3.0 Android4.4.4以下完美ROOT教程
  15. VBA快速转换数据格式,将CBOT结算价历史数据导入数据库(图文)
  16. 使用hibernate的@SQLDelete和@Where注解实现逻辑删除
  17. java数字大小排序_怎么用java给数字排大小?
  18. 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
  19. 手写Spring DI依赖注入,嘿,你的益达!
  20. 奥维地图数据格式_如何批量将文本格式的经纬度数据导入到奥维成为标签

热门文章

  1. XAMPP简介、安转、使用
  2. 十大战略工具(4)—— SCQA架构
  3. Java Web高级面试题(二)
  4. java 内存模型JMM解析
  5. 中国互联网还不到躺平的时候!
  6. 新中新 金龙一卡通 TPE_StartTPE 加载授权文件失败 JAVA
  7. PDF电子书如何一键添加书签
  8. 俞军产品方法论读书心得笔记
  9. 矩阵连乘——动态规划算法
  10. Happens-Before原则