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

news2024/11/22 14:29:55

目录

  • PROJ
    • 什么是PROJ
    • PROJ下载方式
    • 资源结构
    • 编译PROJ
    • 打包编译成功的库


PROJ

什么是PROJ

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

PROJ下载方式

官方下载链接
进入官网后,点击Current Release下的下载链接。
在这里插入图片描述

资源结构

下载好后,解压后的结构应该与下方图片中相似。
在这里插入图片描述

编译PROJ

需要事先安装CMake。下载链接

1、打开CMake,并且点击左侧的【Browse Source】和【Browse Build】按钮添加对应的路径。
这里我源码路径为F:/C++Project/proj-9.1.1,编译路径为:F:/C++Project/proj-9.1.1-build。你需要修改为自己合适的路径。
在这里插入图片描述

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

效果图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无人机倾斜摄影测量技术的优势有哪些?

传统的地理信息获取工作一般是通过人工测量的方式进行,但这样的测量方式具有工作强度大、成本高等问题。随着现代科技的不断发展,测绘行业对地理信息数据的准确性、时效性要求也越来越高,人工成本和时间成本也为行业带来了巨大的压力。因此&a…

GIT回退到指定版本的两种方法(reset/revert)

实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:reset、revert。 命令特点reset该命令会强行覆盖当前版本和要回退的版本之…

ArcGIS基础实验操作100例--实验15设置字段属性域

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验15 设置字段属性域 目录 一、实验背景 二、实验数据 三、实验步骤 (1&a…

如何用Sonic云真机打王者

使用Sonic进行跨网段部署,助力海外业务的公司进行专项检测。提供定时任务充分利用无人值守时间回归UI测试,省时省力。自研随机事件测试与UI遍历测试,支持打通Jenkins的DevOps流程,Sonic提供图像识别,后续还会添加poco控…

ECS-弹性容器服务 - Part 2

68-ECS-弹性容器服务 - Part 2 Hello大家好,我们今天继续ECS的内容。 Service load balancing 之前的课时讨论过,在ECS集群上创建的ECS服务支持AWS负载均衡器,而应用程序负载均衡器和ECS服务通常是一个很好的搭配,因为应用程序负…

Docker 基础概念介绍

一 什么是 docker ? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,…

【nowcoder】笔试强训Day13

目录 一、选择题 二、编程题 2.1参数解析 2.2跳石板 一、选择题 1.一个关系数据库文件中的各条记录 () 。 A. 前后顺序不能任意颠倒,一定要按照输入的顺序排列 B. 前后顺序可以任意颠倒,不影响库中的数据关系 C. 前后顺序…

前端面试题之计算机网络篇--HTTP协议

HTTP协议 1. GET和POST的请求的区别 GET和POST方法 GET和POST方法都是HTTP中的方法 什么是 HTTP? 超文本传输协议(Hypertext Transfer Protocol,缩写 HTTP)旨在启用客户端和服务器之间的通信。 HTTP 充当客户端和服务器之间的…

Android进阶——Javac编译解析

Javac编译器 1.Javac的源码与调试 Javac的源码下载地址:Javac的源码下载地址,在Myeclipse中新建项目Compiler_javac,把源码复制到项目中。 Javac的源码目录: 从Sun Javac的代码来看,编译过程大致可以分为3个过程&…

测试工程师正遭「革命」 AI将改写测试模式

文章目录❤️‍🔥 软件测试的现状❣️ 功能测试的短板❣️ 过于的依赖工具❤️‍🔥 测试行业的两极分化❤️‍🔥 纯功能测试人员应该如何破局❣️ 龙测 AI TestOps 云平台❣️ AI TestOps 亮相 TICA❣️ AI TestOps 所实现的混合模型解决方案…

相关系数(皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数)

目录 总体皮尔逊Person相关系数: 样本皮尔逊Person相关系数: 两点总结: 假设检验:(可结合概率论课本假设检验部分) 皮尔逊相关系数假设检验: 更好的方法:p值判断方法 皮尔逊相…

lua调用c动态库实例

简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 特点 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K&a…

STM32/51单片机实训day4——RFID数据读取|RC522|串口数据收发、可模拟RFID (三) 仿真

目录 1 任务指导 2 实验步骤 3 串口调试 4 USART配置 5 fputs函数重写 内 容:能够读取RFID卡S50的ID——编程实现串口数据收发 学 时:3学时 知识点:电路图设计、USART配置 重点: USART配置 难点:USART配置 时…

赶快升级吧!PHP8比PHP5快41倍,比PHP7快3倍

本文得出的结论,归结于仅运行纯CPU任务的脚本的基准测试结果,不需要I/O操作的任务,例如访问文件、网络或数据库连接。 这些是纯 CPU 基准测试。它们并未涵盖 PHP 性能的所有方面,并且它们可能无法代表实际情况。然而,结…

用Python标准库统计CSDN阅读量

urllib基础 一般做爬虫其实很少有推荐urllib的,但urllib乃是Python标准库成员,在要求比较简单的情况下,采用urllib还是比较方便的。 作为爬虫入门必学包,urllib最常用的函数一定是urllib.request中的urlopen。其返回对象是HTTPR…

ES学习路程(二)

关于ES第一篇是在Linux安装,为了方便我在windows搭建一套ES和kibana版本(7.15.0) 第一步:下载安装ES在windows 官网下载相应版本的es和kibana: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7…

《图解TCP/IP》阅读笔记(第八章 8.6、8.7)—— 网络管理与其他应用层协议

前言 本篇是第八章的最后一篇 8.6 网络管理 从前,网络管理凭借管理员的记忆和直觉进行,但是网络规模越大,人的力量就越不足,所以需要一个严密的管理工具或方法。 在TCP/IP的网络管理中,可以使用SNMP(Si…

uni-app——小程序实现本地图片的上传以及身份证的智能识别

文章目录 前言一、示例图二、实现过程 1.完成提交图片的api地址2.获取本地图片3.将本地图片上传至开发者服务器三、具体实现代码四、身份证的智能识别总结前言 上传本地图片的功能很常见,那么具体该如何实现呢? 一、示例图 二、实现过程 1.完成提交图…

操作系统接口系统调用的实现

接口 连接两个东西,信号转换,屏蔽细节… 操作系统接口 连接上层用户和操作系统软件,方便了使用,屏蔽了细节。 操作系统接口的形式 为应用层提供一些重要的函数,如printf,write,read等。接口…

Windows Active Directory —— 常见的远程控制对比

在windows环境中,需要远程访问的时候很多,使用的工具和命令也各式各样,我把自己常用的命令和工具总结一下 远程访问方式: 1)对服务器而言,RDP这个绝对是最常见的方式,mstsc /v:remoteserver 即可打开 2)winrs和winrm,这个可以允许我们通过命令行来远程访问,远程服务…