PROJ 9.1.1源码下载编译(Win10+VS2022)

简介: PROJ 9.1.1源码下载编译(Win10+VS2022)

PROJ

什么是PROJ

什么是PROJ

Proj是一个免费的GIS工具。 它专注于地图投影的表达,以及转换。采用一种非常简单明了的投影表达PROJ,比其它的投影定义简单,但很明显。很容易就能看到各种地理坐标系和地 图投影的参数,同时它强大的投影转换功能,也是非常吸引人的。许多的 GIS软件中也将其集成在内。Proj可以在 window的命令下有可运行的 EXE文件,其实它更主要的是一个库!可以用来编一些批处理。在 Linux下除了可以直接运行外,还可以作为库来进行更高功能的开发。


PROJ下载方式

官方下载链接

进入官网后,点击Current Release下的下载链接。


资源结构

下载好后,解压后的结构应该与下方图片中相似。

编译PROJ

需要事先安装CMake下载链接

2、点击左下角的【configure】按钮。

3、如果你的编译路径不存在,那么将会有弹窗提醒你。这里你只需要点击yes即可。(注:如果你手动创建了编译目录那么这一步是不需要的。)


4、开始配置环境

【Specify the generator for this project】表示让你选择合适的编译器。这里我选择Visual Studio 2022。你需要选择自己合适的VS版本。

【Optional platform for generator(if empty, generatoar uses: x64)】表示你需要选择合适的平台。默认将选择64位。如果你需要其他环境就需要手动选择。


其他均默认即可。然后点击【Finish】按钮。

5、这一步只需要等待

6、到下面这个图时,你需要配置SQLite3的路径。具体SQLite3的库生成见此文章:SQLite3源码下载与编译(开发环境:Win10+VS2022)

设置完成后就可以点击【Generate】按钮。进行生成即可。

9、这一步只需要等待生成完成即可

9、出现下面这些日志则表示生成成功。

10、点击【Open Project】按钮,打开工程。

11、出现下面这个界面就表示工程打开成功了。然后选择合适的环境(debug/release)。

12 首先右击解决方案,然后点击生成解决方案。

13 等待漫长的编译过程吧。


14 如果你到这一步,那么就说明你以及编译成功了。如果你编译失败了。请把错误贴在评论区一起来商讨。


打包编译成功的库

在某一个磁盘根目录创建一个文件夹名为proj,再到proj文件夹中以此创建include、lib和bin文件夹。用于将proj所有的头文件、静态库、动态库都放进去。

1、打包头文件

将 F:\C++Project\proj-9.1.1\src\*.h 复制到 D:\proj\include

将 F:\C++Project\proj-9.1.1\src\*.h 复制到 D:\proj\include

将 F:\C++Project\proj-9.1.1\include\*.h 复制到 D:\proj\include


2、打包静态库

将 F:\C++Project\proj-9.1.1-build\lib\release\proj_d.lib 复制到 D:\proj\lib\release\proj_d.lib

将 F:\C++Project\proj-9.1.1-build\lib\debug\proj_d.lib 复制到 D:\proj\lib\debug\

将 F:\C++Project\proj-9.1.1-build\lib\RelWithDebInfo\proj_d.lib 复制到 D:\proj\lib\release\

如果你还需要其他环境也一并拷过去。如果你只需要某一个环境那么也可只拷贝一种即可。


3、打包动态库

注:这里文件的移动还需要将后面的文件名中的版本信息给删去,方便后面调用。

将 F:\C++Project\proj-9.1.1-build\lib\release\proj_9_1_d.dll 复制到 D:\proj\lib\release\proj_d.lib

将 F:\C++Project\proj-9.1.1-build\lib\release\proj_9_1_d.pdb 复制到 D:\proj\lib\release\proj_d.pdb


效果图


目录
相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33252 201
如何保证分布式文件系统的数据一致性
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36821 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24905 16
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36824 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29949 52

热门文章

最新文章