proj.4的下载和编译

2023-11-06

简介

下载

编译

生成lib


简介

没啥好说的,地图坐标转换的库

下载

https://github.com/OSGeo/PROJ

选择tags下的最新版7.2.0,安装方法参考git下的安装说明->https://proj.org/install.html

编译

这里我们通过vcpkg安装proj4的依赖项(sqlit3,tiff,curl)

(推荐使用vcpkg而不是conda,虽然conda有清华源但还是很慢)

进入vcpkg.exe同层目录,文件框输入cmd,依次执行以下命令

vcpkg.exe install sqlite3[core,tool]:x86-windows tiff:x86-windows curl:x86-windows
vcpkg.exe install sqlite3[core,tool]:x64-windows tiff:x64-windows curl:x64-windows

执行后就是漫长的等待

等了20分钟第一个命令执行完毕,再执行第2条命令

第二个装完

依赖项安装完毕之后,参考官网文档继续操作

这里我们就不用把proj文件放到指定位置,随意就好

进入下载好的proj文件(路径全英)下创建build文件夹,用于存放生成的结果,进入build文件夹,进入cmd

执行以下命令

DCMAKE_TOOLCHAIN_FILE 跟着的就是vcpkg.cmake的路径

cmake -DCMAKE_TOOLCHAIN_FILE=C:\src\vcpkg\scripts\buildsystems\vcpkg.cmake ..

安装中会在线下载些吊东西,等着就好

等结束后,再执行第二句 --> 这里塞入了大量的文件,真正的干活了

cmake --build . --config Debug -j 8

等着就好

到此结束!

最后,咱也照着官网的来测试下

ctest -V --build-config Debug

跳出来一大堆的信息,咱也看不懂,但应该是没啥问题的。

生成lib

打开build文件下的PROJ.sln

proj改为启动项,添加x64的编译,右键生成报错

模块计算机类型,指VS中附加的链接库函数类型,即lib或dll分为64位和32位之分,

目标计算机类型,此处指的是编译的平台,即X64或者Win32编译平台。 --> 可能用到了x86的资源了

这里查看目录

没啥问题,接着看,果然用到了x86的资源

改回来又编译一次发现还是不行,只能把所有选项打开,挨个看里面有没有x86的东西,又发现一个,把附加选项清空,再来!

这次舒服了

tip:

附加包含目录:x86改成x64

库目录/附加选项:清空


更新

时隔数月,需要再次编译,发现通过vcpkg死活下载不了,发现一个宝藏源:

http://download.osgeo.org/

找到最新的proj-8.0.0,下载下来通过cmake先搞一下看看

configure一下

缺少sqlite3和tiff

sqlite3

https://www.sqlite.org/download.html

下载3个文件

解压出来放到package里

新建空项目,将下面四个文件拷贝到项目中并添加

添加后如图

预处理定义如下

 _USRDLL  
SQLITE_ENABLE_RTREE   
SQLITE_ENABLE_COLUMN_METADATA  
SQLITE_ENABLE_FTS5  
SQLITE_ENABLE_UNLOCK_NOTIFY

模块定义文件添加:sqlite3.def

改成静态库

生成即可

tiff

http://download.osgeo.org/libtiff/

下载最新的tiff-4.2.0.zip

解压如下,发现有makelist

通过cmake打开看一下(有了build文件夹,那我们直接使用)

一大堆标红,不管他,改一下安装前缀,点一下generate可以成功生成

去build里打开tiff.sln,改一下项目属性就可以直接生成了

更好的方法:

ALL_BUILD生成

INSTALL,仅生成INSTALL

这样就能在一开始设置的install前缀中看到我们需要的了(debug和release个来一次即可)

 

至此我们生成了sqlite3和tiff,重新用cmake试下proj

报错后勾选了advance,发现还缺少curl

curl

curl的下载和编译

 

再试一下

报错(编译proj需要在线下google的东西,然而完全下不了啊 卧槽)

CMake Error at test/unit/CMakeLists.txt:32 (message):
Build step for googletest failed: 1

然后自己复制了链接通过下载了,通过everything找到同名文件,替换掉源文件

再次generate,终于!

酱酱!(如果只需要proj就单独编译proj好了,否则all build生成 再intall 仅生成,全部到 之前的install_prefix了)

编译

之前填写的curl include多包了一层,应该只需要包到include即可,这里就不改cmake重新生成了,手动改下

(前面的包含了x86想必是vcpkg集成到vs中,然后cmake调用vs自动获取到vcpkg下载的库 install目录了)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

proj.4的下载和编译 的相关文章

  • linux读取触摸屏事件数据

    对于有触摸设备的电脑或者手机 通过cat proc bus input devices应该就能够看到触摸设备的相关信息 比如 cat proc bus input devices I Bus 0013 Vendor 0x0012 Produ
  • 初学者该掌握的计算机知识,初学者该如何学习电脑知识

    看到不少刚入门的电脑刚入门者找不到适合自己的学习方法 到处碰壁 那么呢 接下来大家跟着小编一起来了解一下学习电脑知识的解决方法吧 初学者学习电脑知识方法 第一阶段 鼠标和键盘的操作 鼠标的操作主要是 移动 拖动 单击 双击和右击 知道鼠标的
  • 优化最小二乘支持向量机数据回归预测:基于鸽群算法与PIO-lssvm(附Matlab代码)

    优化最小二乘支持向量机数据回归预测 基于鸽群算法与PIO lssvm 附Matlab代码 支持向量机 SVM 是一种广泛应用于分类和回归问题的机器学习方法 然而 在SVR中 传统的最小二乘支持向量机 LSSVM 需要通过手动设置超参数来进行
  • Java webservice 客户端代码(四种方式)

    方式一 用hutool工具 String authenticationUrl http 139 196 206 126 8081 services WorkflowService wsdl HashMap
  • elasticsearch报错:DeprecationWarning: Passing transport options in the API method is deprecated.

    这个警告是因为您正在使用 Elasticsearch Python 客户端的一个过时的方式来传递传输选项 transport options 根据警告信息 现在建议使用 Elasticsearch options 方法来设置传输选项 以下是
  • 关于各种merge 的心得

    合并两个线性表 包括合并两个有序线性表 两个线性表相加等 第一 遍历两个表的时候 用 代替 空的那一方取0参与计算就可以了 这样就不用后面处理长的那个表剩下来的部分了 第二 对于进位 也放到 里去 这样不用后面处理最后是否有进位了
  • chain of thought 也就是 CoT思维链

    chain of thought 也就是 CoT 一经提出就引发了社区对它的热烈讨论 CoT 能够帮助大规模语言模型解决复杂的算术 常识及字符推理等任务 背景知识 语言模型 语言模型的本质是对任意一段文本序列的概率进行建模 如果将语言模型看
  • windows下redis设置redis开机自启动方法

    windows下redis设置redis开机自启动方法 ybb ymm的博客 CSDN博客 redis开机自启动设置windows
  • vue国际化处理

    什么是Vue国际化 国际化就是你的页面要面向的群众使用的语言不只是中文 还有其他语言 在面对其他人群时要切换页面的语言 说起来很高大上 实际上还是没有那么高级的 文件的组织 一般是在大型项目中使用的 我们需要将相关文件放置在哪里 建议是新开
  • LinearAlgebraMIT_11_MatrixSpace/Rank==1‘sMatrix/SmallWorldGraph

    x 1 矩阵空间 向量空间定义 满足加法和数乘的封闭性 就类似向量空间一样 也存在着矩阵空间的定义 举个例子 例如所有的3x3的矩阵构成的矩阵空间M 它的纬度就是9 如 1 0 0 1 对于M中所有对称矩阵组成子空间N1 维度为6 M中所有
  • java.sql.SQLException: No suitable driver found for jdbc:mysql:///XXX

    用Maven的父工程搭建DAO模块 并执行测试类 测试数据库查询时 报错 定位到DAO模块的StudentDao java源文件 发现是数据库连接出错 之前我也遇到类似问题 解决方案是在db properties文件中对jdbc url配置
  • pandas(series和读取外部数据)

    一 pandas概述 1 pandas介绍 pandas 是基于NumPy 的一种工具 该工具是为了解决数据分析任务而创建的 Pandas 纳入了大量库和一些标准的数据模型 提供了高效地操作大型数据集所需的工具 pandas提供了大量能使我
  • 期货逼仓攻略之郑商所版

    为什么80 的码农都做不了架构师 gt gt gt 新手入门 逼仓是期货交易所会员或客户利用资金优势 通过控制期货交易头寸或垄断可供交割的现货商品 故意抬高或压低期货市场价格 超量持仓 交割 迫使对方违约或以不利的价格平仓以牟取暴利的行为
  • 用简单的代码实现简易的rxjs的filter功能,帮助rxjs新手了解rxjs的操作符的工作原理。

    最近学习rxjs 在边学习的过程中边总结 希望可以帮助到大家 我模仿rxjs的功能自己在编写简介的类rxjs 这样可以加深我对它的使用 也可以让新手更快速入门 先从最简单的observable对象将起 我们正常使用rxjs如下 var Rx
  • Java架构直通车——以JDBC为例谈双亲委派模型的破坏

    文章目录 引入 JDBC4 0之前 JDBC4 0之后 引入 java给数据库操作提供了一个Driver接口 public interface Driver Connection connect String url java util P
  • apache工程jakarta(雅加达)家族介绍

    Apache Ant Project Ant 众所周知 Ant 蚂蚁 是一套基于java的程序打造工具 Apache Avalon Project 阿瓦隆 Avalon Avalon 阿瓦隆 凯尔特族传说中的西方乐土岛 据说亚瑟王及其部下死
  • 【数据结构理论】图

    定义 图由顶点集V和边集E组成 线性表和树都可以是空的 但图不可为空 但图的边集可以是空集 E是有向边 无向边决定图是有向图 无向图 AB为两端点 E的集合若是无向边 则E A B 若E的集合是有向边 则E
  • datagrid控件讲解

    使用场景 软件 VisualStudio 视图引擎 Razor编辑器 后台编程语言 C 引入 table class easyui datagrid table 配置格式 function initGrid ttt datagrid 配置各
  • CobalStrike的部署(附带资源)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 CobalStrike是什么 二 CobalStrike的部署 总结 前言 作为刚入门网安的小白 挺久之前 就曾听说过CobalStrike这样的一个Re

随机推荐

  • 10LinuxC线程学习之pthread_detach函数,错误返回值分析及其案例

    1 pthread detach函数 int pthread detach pthread t thread 功能 1 实现线程分离 不再受主线程管理 由系统接任 线程结束后 其退出状态不由其他线程获取 而直接自己自动释放 网络 多线程服务
  • TypeScript 封装 Axios

    TypeScript 封装 Axios TypeScript 封装 Axios 为什么需要封装 axios 因为直接在项目中使用 axios axios 的 api 将会嵌入代码的各个地方 耦合程度太高 如果后期更换 Ajax 请求库 将会
  • QT学习笔记02信号与槽简介

    标准信号和槽 信号槽是 Qt 框架引以为豪的机制之一 所谓信号槽 实际就是观察者模式 当某个事件发生之后 比如 按钮检测到自己被点击了一下 它就会发出一个信号 signal 这种发出是没有目的的 类似广播 如果有对象对这个信号感兴趣 它就会
  • OpenTelemetry 项目解读

    点击一键订阅 云荐大咖 专栏 获取官方推荐精品内容 学技术不迷路 随着分布式应用越来越普遍 分布式应用需要依赖强大的可观测性设施来提供监控保障 强大的可观测性设施需要依赖高质量的遥测数据 虽然已经有许多开源或者商业供应商提供了遥测数据监测采
  • 华为eNSP实验-防火墙模拟配置(采用ping命令逐步分析)

    ensp防火墙模拟配置 采用ping命令逐步分析 1 各设备的IP地址配置 按如图所示配置好各个设备对应的IP地址 注意点 1 图中cloud2云处需要关联电脑上对应的虚拟网卡 2 实验中我使用的是华为USG6000V防火墙 需要下载软件包
  • 用批处理写修改注册表的命令

    一般书写格式 reg add 注册表路径 v 值名 t 要修改的数值类型 d 想要输入的数据 f 这个选项可根据情况自行添加 意为不用提示就强行改写现有注册表项 如果在批处理中不想显示出命令执行过程可以再reg前面加入 后面加上 gt nu
  • 使用python安装nginx

    肯定有小伙伴疑问哈 安装nginx仅仅需要几条命令如果只是单单安装简单使用os system os Popen几乎就足以完成 那么为什么要写这么多呢 笔者在写这段代码的时候一个是想让代码更加美观 显得比较专业 另一方面无论安装什么 配置什么
  • 前端 js实现模糊搜索

    前端 js实现模糊搜索 template
  • 全世界最好的编辑器VIM之Windows配置(gvim)

    全世界最好的编辑器VIM之Windows配置 gvim vundle插件管理 NERDTree插件 ctrlp插件 vim nerdtree tabs插件等 vim本来就是很强大 很方便的编辑器 再加上这些杀手级的插件 那就真的无敌了 官方
  • Caused by:org.springframework.beans.factory.NoSuchBeanDefinitionException:No qualifying bean of type

    今天使用Junit单元测试写了个测试spring的AnnotationConfigApplicationContext 的测试方法 代码如下 public class TestApplicationContext Test 较为经典的容器
  • 大数据学习-4.Hadoop运行环境搭建(二)

    文章目录 一 下载JDK和Hadoop安装包 二 安装JDK 三 安装Hadoop 1 单机模式搭建 2 分布式模式搭建 一 下载JDK和Hadoop安装包 下载地址 阿里云 提取码 q6y6 二 安装JDK 测试主机是否有java环境 如
  • 电磁场与电磁波第二章 电磁场的基本规律

    文章目录 第二章 电磁场的基本规律 电荷守恒定律 1 电荷与电荷密度 2 电流与电流密度 3 电荷守恒定律 电流连续性方程 真空中静电场的基本规律 1 库仑定律 电场强度 1 电场强度 2 几种典型电荷分布的电场强度 2 静电场的散度与旋度
  • 博弈论中存在的先动优势和后动优势

    博弈论中存在的先动优势和后动优势 完全信息动态博弈 Stackel berg寡头竞争模型属于先动优势 轮流出价的讨价还价模型 当均衡结果与T无关的时候且 1 贴现因子 2 1 双方无限的耐心 时 存在后动优势 因为他将拒绝任何自己不能得到全
  • idea中java源码英文注释的翻译

    效果展示 操作步骤两步 安装translation插件 设置翻译引擎 安装translation插件 选择该插件 安装好后重启idea即可使用 设置翻译引擎 这里用有道翻译演示 注册好后在业务里面创建翻译接口 创建好后把id和密钥复制填上去
  • 入门深度学习——基于全连接神经网络的手写数字识别案例(python代码实现)

    入门深度学习 基于全连接神经网络的手写数字识别案例 python代码实现 一 网络构建 1 1 问题导入 如图所示 数字五的图片作为输入 layer01层为输入层 layer02层为隐藏层 找出每列最大值对应索引为输出层 根据下图给出的网络
  • java手工注入bean,Spring注入Bean的一些方式总结

    通过注解注入Bean 背景 我们谈到Spring的时候一定会提到IOC容器 DI依赖注入 Spring通过将一个个类标注为Bean的方法注入到IOC容器中 达到了控制反转的效果 那么我们刚开始接触Bean的时候 一定是使用xml文件 一个一
  • 常见数据库安装

    简介 本文记录了常用数据库 MySQL PostgreSQL MSSQL Oracle Redis MongoDB在Windows 及Linux Ubuntu 下 MSSQL Oracle除外 的安装 macOS可参考前两者 解决了Orac
  • win10家庭版找不到组策略gpedit.msc的解决方法

    废话不多说 直接上方法 注意的事项我会再后面讲到 1 打开记事本 在记事本中保存如下批处理内容 echo off pushd dp0 dir b systemroot Windows servicing Packages Microsoft
  • Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取

    Windows系统调用架构分析 也谈KiFastCallEntry函数地址的获取 windows api 汇编 hook 存储 system 目录 为什么要写这篇文章 1 因为最近在学习 软件调试 这本书 看到书中的某个调试历程中讲了Win
  • proj.4的下载和编译

    简介 下载 编译 生成lib 简介 没啥好说的 地图坐标转换的库 下载 https github com OSGeo PROJ 选择tags下的最新版7 2 0 安装方法参考git下的安装说明 gt https proj org insta