Linux下QGIS二次开发环境搭建
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 库下载
- 1. Ubuntu基础依赖库分步下载
- QGIS 核心库及开发包
- GDAL(Geospatial Data Abstraction Library)
- GEOS(Geometry Engine - Open Source)
- PROJ
- SQLite 和 Spatialite
- PostgreSQL 和 PostGIS(可选)
- Qt 开发库
- 2.Ubuntu一步到位
- 3. Fedora 系统安装命令
- 4. 验证安装
- 库分布目录
提示:以下是本篇文章正文内容,下面案例可供参考
库下载
在 Linux 上进行 QGIS 的 C++ 二次开发,需要下载一系列的库文件和头文件,以下以 Ubuntu/Debian 系统为例介绍所需的库及对应的安装命令,其他系统(如 Fedora 等)安装方式会有差异,后续也会给出对应说明。
1. Ubuntu基础依赖库分步下载
这些库是进行 QGIS 开发的基础,QGIS 很多功能依赖它们来实现。
QGIS 核心库及开发包
sudo apt-get install qgis qgis-plugin-grass libqgis-dev
qgis
:QGIS 主程序。qgis-plugin-grass
:QGIS 的 GRASS 插件,用于集成 GRASS GIS 功能。libqgis-dev
:包含 QGIS 的开发库和头文件,是进行 C++ 开发必不可少的。
GDAL(Geospatial Data Abstraction Library)
sudo apt-get install libgdal-dev
GDAL 是一个用于地理空间数据格式转换和处理的开源库,QGIS 利用它来读取和写入各种地理空间数据格式。
GEOS(Geometry Engine - Open Source)
sudo apt-get install libgeos-dev
GEOS 是一个开源的几何引擎库,提供了一系列的几何操作函数,如空间关系判断、几何图形分析等,QGIS 在处理地理空间数据时会大量使用这些功能。
PROJ
sudo apt-get install libproj-dev
PROJ 是一个用于地理坐标系统转换的库,QGIS 需要它来处理不同坐标系统之间的转换。
SQLite 和 Spatialite
sudo apt-get install libsqlite3-dev libspatialite-dev
SQLite 是一个轻量级的数据库,Spatialite 是在 SQLite 基础上扩展的支持地理空间数据的数据库,QGIS 可以使用它们来存储和管理地理空间数据。
PostgreSQL 和 PostGIS(可选)
sudo apt-get install libpq-dev postgis
如果你的项目需要使用 PostgreSQL 数据库来存储地理空间数据,那么安装这两个库。PostGIS 是 PostgreSQL 的一个扩展,为其添加了地理空间数据处理功能。
Qt 开发库
sudo apt-get install qt5-default qttools5-dev qttools5-dev-tools libqt5svg5-dev
QGIS 的图形用户界面是基于 Qt 框架构建的,因此进行 C++ 开发需要安装 Qt 开发库。
2.Ubuntu一步到位
QGIS开发依赖于多个库,如GDAL、GEOS、PROJ等,继续以Ubuntu为例,使用以下命令安装这些依赖:
sudo apt-get install build-essential cmake git python3 python3-pip python3-dev \qt5-default qttools5-dev qttools5-dev-tools libqt5svg5-dev \libgdal-dev libgeos-dev libproj-dev libsqlite3-dev libspatialite-dev \libpq-dev libzip-dev
QGIS开发很多时候会使用Python,你需要确保Python及相关的开发包已安装:
sudo apt-get install python3 python3-pip python3-dev
同时可以安装一些常用的Python库:
pip3 install numpy pandas
3. Fedora 系统安装命令
如果你使用的是 Fedora 系统,对应的安装命令如下:
sudo dnf install qgis gdal-devel geos-devel proj-devel sqlite-devel spatialite-devel postgresql-devel qt5-qtbase-devel qt5-qttools-devel qt5-qtsvg-devel
4. 验证安装
安装完成后,你可以通过以下方式验证库是否安装成功:
- 查看库文件是否存在,例如查看 GDAL 库文件:
ls /usr/lib | grep gdal
- 查看头文件是否存在,例如查看 QGIS 头文件:
ls /usr/include/qgis
安装完这些库文件和头文件后,你就可以开始进行 QGIS 的 C++ 二次开发了。
库分布目录
在Linux系统中,libqgis-dev
安装后,其文件通常分布在以下几个目录:
- 头文件:位于
/usr/include/qgis/
目录下,包含了进行 QGIS C++ 开发所需的头文件,用于声明函数、类、结构体等,让开发者在编写代码时能够引用 QGIS 的相关功能。 - 库文件:存放在
/usr/lib/
目录下,常见的有libqgis_3d.so
、libqgis_analysis.so
、libqgis_app.so
、libqgis_core.so
、libqgis_gui.so
等,这些库文件包含了 QGIS 的各种功能实现,是链接程序时的重要依赖。 - 其他文件:在
/usr/share/qgis/
目录下有findqgis.cmake
文件,用于帮助 CMake 找到 QGIS 的相关资源,方便在项目构建过程中进行配置和链接。
不过,不同的Linux发行版可能会有一些差异,如果在上述目录中没有找到,可以尝试使用 dpkg -L libqgis-dev
命令(适用于基于Debian的系统,如Ubuntu)来查看该软件包安装的所有文件及其路径。
dpkg -L libgeos-dev
如果是使用包管理工具(如 apt
等)安装 libgeos-dev
,在基于 Debian 或 Ubuntu 的系统中,libgeos-dev
相关文件通常会被安装到以下一些常见路径:
- 头文件:一般会安装到
/usr/include/geos
或/usr/local/include/geos
目录下,具体取决于你的系统设置和安装方式。这些头文件包含了库的函数声明和相关定义,用于在编译程序时提供必要的信息。 - 库文件:库文件通常会被安装到
/usr/lib
或/usr/local/lib
目录下。在这些目录中,你可以找到libgeos
相关的动态链接库文件,如libgeos_c.so
等。
如果是通过源码编译安装 libgeos-dev
,在安装过程中你可以指定安装路径。如果没有指定,通常默认安装到 /usr/local
目录下,具体可能是 /usr/local/include
用于头文件,/usr/local/lib
用于库文件。
Qt开发库的安装位置因安装方式和Linux发行版而异,以下是一些常见情况:
- 使用包管理器安装
- 基于Debian的系统(如Ubuntu、Debian):执行命令安装
qt5-default
等相关包后,头文件通常在/usr/include/qt5
目录下,库文件在/usr/lib/x86_64-linux-gnu/
(64位系统)或/usr/lib/i386-linux-gnu/
(32位系统)目录下,可执行文件(如qmake
)在/usr/bin/
目录下。 - 基于RPM的系统(如Fedora、openSUSE):使用
dnf install qt5-qtbase
等命令安装后,头文件一般在/usr/include/qt5/
目录,库文件在/usr/lib64/
(64位系统)或/usr/lib/
(32位系统)目录,qmake
等可执行文件在/usr/bin/
目录。
- 基于Debian的系统(如Ubuntu、Debian):执行命令安装
- 使用Qt在线安装器安装:下载并运行Qt在线安装器,在安装过程中可以指定安装目录,默认情况下,会安装到
/opt/Qt
目录下。安装完成后,在指定的安装目录下会有不同版本的Qt文件夹,例如/opt/Qt/5.12.9/
,其中包含bin
(可执行文件)、lib
(库文件)、include
(头文件)、examples
(示例程序)等子目录。 - 通过源代码编译安装:如果从源代码编译安装Qt,默认会安装到
/usr/local/Qt-版本号
目录下。例如,安装Qt 5.9.3,安装目录就是/usr/local/Qt-5.9.3
。该目录下同样有bin
、lib
、include
等子目录,分别存放相应的文件。
要确切知道Qt开发库的安装位置,可以通过以下命令查找:
which qmake
该命令会返回qmake
的路径,通常qmake
位于Qt安装目录的bin
子目录下,由此可以推断出Qt库和其他工具的位置。
工作记录类文章