iOS平台编译Ogre游戏引擎库

Published 2018-10-13 22:56 753 words 4 min read

前端项目通过bridge获取客户端资源,客户端直接返回response对象Win11 光标变白消失解决方案(浏览器开启硬件加速后,在鼠标滑到文本处出现)Terminal里用option/alt + 鼠标点击,就可以让光标到指定位置Duff's Device为 UIControl 实现线程安全的 Block 事件扩展:原理与实践前端代码规范设计模式k8s前端项目利用nginx部署项目不停机Vue3+Vite+history模式+Nginx 部署二级路径iOS开发工具常用代码模板2——数据结构常用代码模板1——基础算法iOS:特殊符号大全HomeBrew 更新报错“fatal- Could not resolve HEAD to a revision”SwiftUI基本控件代码大全——1.欢迎进入软件构建的世界C++ STL简介LeetCode 70 爬楼梯(青蛙跳台阶)深入理解计算机系统(第二版) 家庭作业 第二章Swift Module 如何被全局引用LeetCode 398 随机数索引Vue 的一些指令和缩写LeetCode 486 Predict the Winner(预测赢家)浅谈iOS中的weakCocoaPods组件化——OC/Swift动静态库混用OpenGL 术语当对象接收到不能处理的消息时调用的方法命令行通过ffmpeg剪切视频iOS:如何在UITableView调用reloadData刷新结束后再同步执行后续操作统计iOS工程代码行数CMake 入门及常用变量指令手册LeetCode 6 ZigZag Conversion(Z字转换)LeetCode 106 Construct Binary Tree from Inorder and Postorder Traversal(由中序和后序遍历建立二叉树)LeetCode 5 Longest Palindromic Substring(最长回文字串)LeetCode 8 String to Integer (atoi)Objective-C Type EncodingsObjective-C:为什么分类中不能直接添加属性MeshLab数据结构与算法解析习题2.23数据结构与算法解析习题2.19数据结构与算法解析习题2.16数据结构与算法解析习题2.14数据结构与算法解析习题2.13数据结构与算法解析习题2.12数据结构与算法解析习题2.11:二分查找数据结构与算法解析习题2.10:霍纳法则(Horner's rule)数据结构与算法解析习题2.7数据结构与算法解析习题1.3数据结构与算法解析习题1.2数据结构与算法解析习题1.1centos7 mysql数据库安装和配置Fishhook-源码分析解决Mac下 Cornerstone 无法查看SVN日志的问题UIButton扩大点击范围以及关于响应者链条的思考UILabel中文带行间距的处理,限制行数,计算高度等UITableview调用reload方法时抖动问题C语言指针小结C语言数据类型和const、static关键字iOS 截取整个 scrollview 图片WxWidgets类列表objc源码分析-runtime-classiOS自动化埋点的实现iOS平台编译Ogre游戏引擎库在 Mac OS X 上安装 TensorFlowiPhone 刘海机型UI适配(X、Xs、Xs Max、Xr)关于C语言中的union虚拟机 Linux 上编 slice3r perl Build.PL 报错iOS 沙盒与 BundleCOCOAPODS技巧-创建私有仓库iOS脚本打包 ipa(.app转.ipa)Objective-C 中禁止调用指定的方法iOS 关于 UITextField 的字数限制升级 Mac OS 10.13 High Sierra 后 ruby 报错iOS 框架学习-AsyncSocketSQL语句OC优缺点以及常见bugUIViewController 的生命周期runtime——运行时简单使用iPhone6 Plus上面神秘的缝隙CocoaPods安装和使用教程(更新至Mac High Sierra)UIApplicationiOS 网络小结NSString的各种处理HTTP请求报文和HTTP响应报文,以及工作原理Vim 快捷键整理OC中nil 、NULL、 Nil 、NSNull的区别GCD 使用指南iOS常用数据类型转换关于NSNotificationCenterGit 命令MAC OS 常用技巧Description方法和NSLog函数代码重构OC单例宏Block in Objective-CObjective-C 语法 3Objective-C 语法 2Objective-C 语法 1
This post is not yet available in English. Showing the original.
Ogre 是个老牌的游戏引擎了,前段时间有点需求需要改里面源码,所以研究了一下如何编译,没想到坑有点深,爬完赶紧过来记录一下,省得再陷进去。。 准备阶段 需要下载 Ogre源码和 Ogre 依赖的一些库,先把这些依赖的库编好放在 iOSDependencies 文件夹中,头文件放在 include

Ogre 是个老牌的游戏引擎了,前段时间有点需求需要改里面源码,所以研究了一下如何编译,没想到坑有点深,爬完赶紧过来记录一下,省得再陷进去。。

准备阶段

需要下载 Ogre源码Ogre 依赖的一些库,先把这些依赖的库编好放在 iOSDependencies 文件夹中,头文件放在 include 文件夹中,库放进 lib 文件夹中。

安装 cmake 工具。

然后就开始编 Ogre了。

其实编译这些依赖库的时候也遇到了一些坑,不过我的大脑保护机制选择删除了这段记忆,实在想不起来了,不过网上好像有直接编译好的包,所以如果实在编译不成功可以网上找找或者联系我。

OGRE1.10.11 iOS 源码 Build

第一步,把 iOSDependencies 文件夹拷贝到 Ogre 源码的根目录。

第二步,创建 build 文件夹,然后 cd 进 build。

mkdir build
cd build

第三步,设置 cmake 相关参数并生成 Xcode 工程,注意命令最后的两个点不要丢掉,那是路径设置。

# 参数中需要改动有两点
# DIOS_PLATFORM              编译真机还是模拟器(OS或者SIMULATOR)
# DOGRE_DEPENDENCIES_DIR     ogre依赖库的路径,要写成绝对路径,不要问我为什么。。

cmake -DOGRE_BUILD_PLATFORM_APPLE_IOS:BOOL=TRUE -DIOS_PLATFORM=SIMULATOR -DCMAKE_TOOLCHAIN_FILE=CMake/toolchain/ios.toolchain.xcode.cmake -DAPPLE_IOS:BOOL=TRUE -DOGRE_DEPENDENCIES_DIR="/Users/ankang/Documents/Git/OGRE/ogre1.10.11/iOSDependencies" -G Xcode ..

最后一步,编译生成的 Xcode 工程。

cmake --build .

如果编译完成的就是 iOS 平台的 ogre 的库了。。


下面是当初 Ogre 1.9 的爬坑之旅,只是记录,如果不需要编老版本库的话,就不要看了,看了心烦。。


OGRE1.9 iOS 源码 Build

下载源码 需要下载两套源码:

  1. OGRE源码
  2. ogredeps

添加 iOS 依赖库

  1. 在 ogre 根目录创建目录: iOSDependencies ,然后放着先别管他。
  2. 进入下载的 ogredeps 源码根目录。
  3. 用 cmake 构建一个 ogredeps 的 xcode 工程,方法同上。
  4. 打开 ogredeps 工程,选择 install target,编译一下。
  5. 编译完成后,在工程目录下,有个 ogredeps 目录,拷贝目录里面的 inclued 和 lib 两个文件夹,粘贴到 iOSDependencies 之中。(debug 和 release 的真机和模拟器都要弄)

通过 CMAKE build iOS工程

  1. 下载 cmake APP 打开。
  2. 在 source code 处,选择 ogre 根目录。
  3. 在 build 处,选择需要 build 出来的工程的地方。
  4. 点击 Add Entry,Name : OGRE_BUILD_PLATFORM_APPLE_IOS , Type : BOOL, value : 打对勾。然后点击OK
  5. 点击 Configure,等等配置结束,再次点击 Configure。再次等待。然后点击Generate。等待一段时间,工程已经构建完成。但是这时候是跑不起来工程的。还需要添加一下 iOS 依赖库。

跑 OGRE SDK 编译脚本 (可省略 (通过 CMAKE build iOS工程) 步骤)

  1. 进入 ogre/SDK/iOS 目录。
  2. 执行 make_ios.sh 脚本,坐等一个小时左右。
  3. 在此目录下会生成 build 文件夹。里面就是 iOS 工程。
  4. 完事,跑工程即可。

参考:https://github.com/aphcoder/ogre-ios-helloworld