GIS3.16.3+vs2015源码编译(详细)

本文详细介绍了如何在Windows上使用VS2015和Qt5.12.0编译QGIS 3.16.3源码。首先,下载并配置所需的软件,包括VS2015、Qt、CMake、Cygwin64和OSGeo4W。接着,调整环境变量,配置QGIS源码,并通过批处理文件初始化环境。然后,按照特定顺序编译qgis_core、qgis_gui、qgis_app和qgis项目。最后,解决编译过程中的问题和动态库缺失问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近有个需要二次开发QGIS的需求,开始探索QGIS的世界。想要基于QGIS的库或者源码开发有两种方式,一是下载QGIS的lib库,基于已有的QGIS库进行新项目的开发;二是,下载QGIS源码,编译生成QGIS项目工程。对应下图的最后两项。

        C++API开发环境搭建详见《QGIS3.28+Qt5.12.0+msvc2015环境搭建》

        以下为QGIS开发原码编译的过程。

一 资源下载

1.vs+Qt

vs地址:MSDN, 我告诉你 - 做一个安静的工具站

Qt地址:Index of /archive/qt/5.12

        安装基础的VS2015+Qt5.12.0的开发环境,版本选择不要过低。vs安装时注意选择Windows 10 SDK(10.0.14393.0) ,会用到SetupAPI.Lib。同时需要安装Qt vs Tool.

2.Cmake

地址:Download | CMake

直接下载压缩包解压就好。这里用的3.21的版本。(作用编译源码)

3.Cygwin64

地址:setup-x86_64.exe

        安装Cygwin64,并安装Flex、Bison。Flex >= 2.5.6;Bison >= 2.4。(作用:Cygwin是一个在windows平台上运行的类UNIX模拟环境)

4.OSGeo4W

地址:setup-x86_64.exe

        安装OSGeo4W,并安装QGIS依赖环境qgis

<think>好的,我现在要帮用户解决在Ubuntu下编译GTK+ 3.0.0源码所需的依赖库及其最低版本要求的问题。首先,我需要回忆一下GTK+的各个组件以及它们之间的依赖关系。根据用户提供的引用内容,尤其是引用[1]和[3],GTK+依赖于多个库,比如glib、pango、cairo、gdk-pixbuf、atk等。这些依赖库的版本需要满足最低要求才能成功编译GTK+ 3.0.0。 首先,我应该确定GTK+ 3.0.0的发布时间,从而推断其依赖库的版本。GTK+ 3.0.0大约是在2011年发布的,所以对应的依赖版本应该也是那个时期的。接下来,我需要逐个检查每个依赖库的最低版本要求。 查看引用[1],里面提到在Ubuntu 14.04中编译安装Gtk-3.16.3时需要的依赖包括cairo、glib、freetype等。不过用户需要的是GTK+ 3.0.0,所以可能版本要求会更低一些。引用[3]提到GTK+依赖GDK和GLib,而GLib是基础库,所以GLib的版本应该需要至少2.28或更高,因为GTK+ 3.0需要较新的GLib功能。 然后,pango的版本可能需要1.29或更高,因为早期版本的pango可能不支持某些特性。cairo方面,GTK+ 3.0.0可能依赖cairo 1.10或以上,因为较新的图形功能需要更新版本的cairo。gdk-pixbuf的版本可能需要2.23或更高,这个版本支持必要的图像加载功能。atk(Accessibility Toolkit)可能需要2.0以上版本,以确保无障碍功能的支持。至于gobject-introspection,可能在编译时需要安装,但用户的问题中没有提到,不过引用[2]提到了安装gobject-introspection,这可能是一个可选的依赖编译时的工具依赖。 此外,用户提供的引用[4]和[5]提到编译时需要注意库路径设置,比如PKG_CONFIG_PATH和ldconfig,这些可能影响编译过程,但用户现在主要是询问依赖库的版本,所以暂时不需要深入这部分。 总结一下,各个依赖库的最低版本大致如下: - GLib 2.28或更高 - Pango 1.29或更高 - Cairo 1.10或更高 - GDK-Pixbuf 2.23或更高 - ATK 2.0或更高 - 可能还需要freetype、libpng等图形库的支持,但具体版本可能需要参考官方文档。 需要注意的是,这些版本可能不是绝对准确的,最好参考GTK+ 3.0.0的官方安装文档或发布说明。此外,用户可能需要使用源码编译这些依赖库,或者在Ubuntu的仓库中找到对应版本的软件包。例如,在较旧的Ubuntu版本中,可能需要通过添加PPA或者手动下载源码来满足版本要求。 另外,用户的问题中提到的是源码编译,所以需要确保所有开发包(即-dev或-devel包)都已安装。例如,libcairo2-dev、libglib2.0-dev等,如引用[1]中提到的。 最后,生成相关问题时要围绕依赖库的安装、版本冲突解决、编译步骤等,帮助用户进一步解决问题。</think>在Ubuntu下编译GTK+ 3.0.0源码时,需确保以下依赖库满足最低版本要求: ### 核心依赖库及版本要求 1. **GLib** - 最低版本:2.28.0 - 作用:提供基础数据类型、事件循环、线程支持等[^3]。 - 安装命令: ```bash sudo apt-get install libglib2.0-dev ``` 2. **Pango** - 最低版本:1.29.0 - 依赖项:需先安装Cairo和HarfBuzz(若手动编译需注意版本兼容性)[^1][^2]。 - 安装命令: ```bash sudo apt-get install libpango1.0-dev ``` 3. **Cairo** - 最低版本:1.10.0 - 作用:提供2D图形渲染支持[^3]。 - 安装命令: ```bash sudo apt-get install libcairo2-dev ``` 4. **GDK-Pixbuf** - 最低版本:2.23.0 - 作用:处理图像加载与格式转换[^3]。 - 安装命令: ```bash sudo apt-get install libgdk-pixbuf2.0-dev ``` 5. **ATK** - 最低版本:2.0 - 作用:提供无障碍功能支持[^3]。 - 安装命令: ```bash sudo apt-get install libatk1.0-dev ``` 6. **GObject-Introspection**(可选但推荐) - 作用:支持动态绑定生成(如Python等语言调用GTK)[^2]。 - 安装命令: ```bash sudo apt-get install gobject-introspection libgirepository1.0-dev ``` ### 其他依赖 - **Freetype**(用于字体渲染): ```bash sudo apt-get install libfreetype6-dev ``` - **X Window系统库**: ```bash sudo apt-get install xorg-dev ``` ### 完整安装示例 ```bash sudo apt-get update sudo apt-get install gcc g++ make \ libglib2.0-dev libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libfreetype6-dev xorg-dev ``` ### 注意事项 - 若通过源码编译依赖库,需正确设置`PKG_CONFIG_PATH`和`LD_LIBRARY_PATH`,确保编译工具链能定位到新版本库[^4]。 - 若遇到版本冲突,可通过`apt-cache show <package>`查询仓库中可用版本
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值