graphhopper-ios 编译过程详解

一、写在前面

GraphHopper 是一个快速且高效的路径规划引擎,它默认使用OpenStreetMapGTFS数据, 也可以导入其他数据源。它可以用作java库或独立的web服务器,去计算两个或多个点之间的线路的距离,时间,转弯指令和许多道路属性。除了“A-to-B”的路径规划能力之外,它还支持“snap to road”、等时线计算、移动导航等。

graphhopper-iosgraphhopperoc版本,它使用j2objc.java源代码转换为Objective-C代码, 以供iOS平台的开发者来使用。该库在成功编译后会生成一个libgraphhopper.a的静态库文件。

接下来介绍该库在终端命令行模式下的编译过程

二、Mac 环境下的编译步骤

2.1 编译前的准备工作

  • JDK 8
    首先查看你的Mac 系统是否已经安装了JDK,打开终端窗口并输入java -version,如果没有安装过jdk会提示需要安装。
    JDK下载地址: https://www.oracle.com/java/technologies/downloads/
    先选择MacOS平台 , 再选择架构 x64 or arm64的.dmg文件。 如果不知道本机的Mac支持哪种架构, 可以通过如下命令来查看
uname -a

在这里插入图片描述

在这里插入图片描述
下载后解压,重名名为Maven,并放入到资源库/Library/Maven下. 接下来配置Maven的环境变量
(1)打开终端, 输入命令 vim ~/.bash_profile . 打开.bash_profile文件,在文件中添加设置环境变量的语句

export M2_HOME=/Library/Maven
export PATH=$PATH:$M2_HOME/bin

添加完之后执行:wq保存退出

(2) 输入 source ~/.bash_profile 使环境变量生效

(3) 输入mvn -v查看是否安装成功

在这里插入图片描述
表示安装成功

在这里插入图片描述
下载上图中标记的.zip文件, zip文件是被编译后的,可以直接拿来用。 资源比较大 1.79GB , 下载完成后,备用。

2.2 开始编译

查看更多

三、遇到的问题

查看更多

四、静态库下载

查看更多

原文链接:https://www.cnblogs.com/reyzhang/p/17328449.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:graphhopper-ios 编译过程详解 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月18日

相关文章

  • [Android开发学iOS系列] 和一个真正iOS开发的区别?

    和一个真正iOS开发的区别? 学习iOS的这段时间, 我一直在思考和感受着自己和一个真正做了几年iOS的dev之间的区别. 同时也在反向思考, 我自己和一个新学Android的人, 又有什么区别. 也许在技术转型中, 这些学习的思考和阵痛都是有共性和不可避免的.在此分享一下感受, 如果有人也有技术转型, 可以看到有些心路历程是不可避免的, 不必焦虑. 当然我…

    IOS 2023年4月17日
    00
  • [Android开发学iOS系列] iOS写UI的几种方式

    [Android开发学iOS系列] iOS写UI的几种方式 作为一个现代化的平台, iOS的发展也经历了好几个时代. 本文讲讲iOS写UI的几种主要方式和各自的特点. iOS写UI的方式 在iOS中写UI有多种选择, 大的分类: 使用UIKit还是SwiftUI. 在使用UIKit的情形下, 还根据是否使用storyboard来区分. UIKit: 用sto…

    IOS 2023年4月18日
    00
  • Appuploader 常见错误及解决方法

    问题解决秘籍 遇到问题,第一个请登录苹果开发者官网 检查一遍账号是否有权限,是否被停用,是否过期,是否有协议需要同意,并且在右上角切换账号后检查所有关联的账号是否工作正常,apple账号的邮箱也是个重要的地方,当有ipa上传,账号有发生变化,被停用,apple经常发送一些邮件,去检查邮件通知,根据邮件通知修改调整。只有账号正常没问题,再考虑是否软件哪个地方操…

    IOS 2023年4月18日
    00
  • 新人必看| 移动端“动态化”是什么意思?

    在移动开发领域,为了让APP保持最新的版本,同时让业务开发变得更加快捷,动态化技术极其重要。今天就来聊聊移动端动态和开发的由来和各流派的优缺点。 移动端动态化的由来 “动态化”并不是最近几年才产生的名词,而是从从互联网诞生的初期,这个词就已经出现了。大家所认知的早期互联网,其实就是各种各类的“动态网站”,内容数据和页面外观都不是固定的,都是随着服务器端的更新…

    IOS 2023年4月17日
    00
  • 内存管理(二)之别小看了Tagged-Pointer关键时刻起到大作用

    本文主要研究Tagged Pointer技术,针对该技术需要解决的问题、以及在实际应用中的价值做一些简单的探讨。 如果你想要更进一步,去挖掘Tagged Pointer是如何实现的,可以参考Friday Q&A 2012-07-27: Let’s Build Tagged Pointers和objc源码。 另外,本文中涉及到的示例代码,请在真机iOS…

    IOS 2023年4月18日
    00
  • Uniapp进行APP打包——iOS 系统

    一、打包过程 1、创建唯一标识符 首先,申请苹果开发者账号。 没有苹果开发者账号是无法进行 ios 打包上线的。 (2) 进入 https://developer.apple.com 这个网址,点击“account” 并输入苹果开发者账号进入用户界面。 ​   (3) 点击证书文件 ​   (4) 进入到这界面以后, 点击“APP IDs”,并新建一个 AP…

    IOS 2023年4月18日
    00
  • iOS内存管理之MRC

    前言: 在iOS中,使用引用计数来管理OC对象内存一个新创建的OC对象引用计数默认是1,当引用计数减为0,OC对象就会销毁,释放其占用的内存空间。调用retain会让OC对象的引用计数+1,调用release会让OC对象的引用计数-1。 内存管理的经验总结 当调用alloc、new、copy、mutableCopy方法返回了一个对象,在不需要这个对象时,要调…

    IOS 2023年4月18日
    00
  • 字节跳动 DanceCC 工具链系列之Xcode LLDB耗时监控统计方案

    作者:李卓立 仲凯宁 背景介绍 在《字节跳动 DanceCC 工具链系列之Swift 调试性能的优化方案》[1]一文中,我们介绍了如何使用自定义的工具链,来针对性优化调试器的性能,解决大型Swift项目的调试痛点。 在经过内部项目的接入以及一段时间的试用之后,为了精确测量经过优化后的LLDB调试Xcode项目效率提升效果,衡量项目收益,需要开发一套能够同时获…

    IOS 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部