iOS 下编译 OSG 引擎
来源:互联网 发布:七天网络阅卷系统2017 编辑:程序博客网 时间:2024/05/22 00:30
1 准备工具
1、CMake 3.0+
2、Xcode 6.0+
3、下载 OSG 3.2.1 稳定版:
点击打开下载链接
2 设置真机或模拟器:
在iOS下需要选择是使用Simulator还是使用Device,因此在编译之前需要打开CmakeList.txt在源码根目录,找到OSG_BUILD_PLATFORM_IPHONE项会有如下两行:
选择其中一个,设置为ON,另一个为OFF:
OPTION(OSG_BUILD_PLATFORM_IPHONE "Enable IPhoneSDK Device support" OFF)OPTION(OSG_BUILD_PLATFORM_IPHONE_SIMULATOR "Enable IPhoneSDK Simulator support" OFF)
选择其中一个,设置为ON,另一个为OFF:
OPTION(OSG_BUILD_PLATFORM_IPHONE "Enable IPhoneSDK Device support" ON)OPTION(OSG_BUILD_PLATFORM_IPHONE_SIMULATOR "Enable IPhoneSDK Simulator support" OFF)
3 开始 CMake
3.1 修改版本号和架构
1)修改 IPHONE_SDKVER ,根据你的系统实际 SDK 版本修改,我这里修改为 8.1
IPHONE_SDKVER = 8.1
2)修改 IPHONE_VERSION_MIN,我这里修改为 5.1:
IPHONE_VERSION_MIN = 5.1
3)修改 CMAKE_OSX_ARCHITECTURES ,我这里修改为 armv7;armv7s;arm64
CMAKE_OSX_ARCHITECTURES = armv7;armv7s;arm64
CMake使用CMAKE_OSX_SYSROOT变量来指向 iOS sdk的位置,设置了 IPHONE_SDKVER 后 OSG会自动检测到该位置:
如果位置有误,你也可以手工对其进行修改。
也可以通过指定 -miphoneos-version-min选项(在CMAKE_CXX_FLAGS中)来指定SDK的最小版本号,默认是4.0,如果使用的是CMAKE GUI,打开Advance选项才能看到CMAKE_CXX_FLAGS项。
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk
如果位置有误,你也可以手工对其进行修改。
也可以通过指定 -miphoneos-version-min选项(在CMAKE_CXX_FLAGS中)来指定SDK的最小版本号,默认是4.0,如果使用的是CMAKE GUI,打开Advance选项才能看到CMAKE_CXX_FLAGS项。
3.2 修改静态编译
iOS 要求OSG必须要静态编译,找到如下项:
DYNAMIC_OPENSCENEGRAPH = OFFDYNAMIC_OPENTHREADS = OFF
3.3 GLES1 or GLES2
iOS 同时运动GLES1和GLES2,其中GLES2支持可编程管线,因此建议选择GLES2,下面是不同的选择的设置:GLES1
OSG_GL1_AVAILABLE = OFFOSG_GL2_AVAILABLE = OFFOSG_GL3_AVAILABLE = OFFOSG_GLES1_AVAILABLE = ONOSG_GLES2_AVAILABLE = OFFOSG_GL_LIBRARY_STATIC = OFF OSG_GL_DISPLAYLISTS_AVAILABLE = OFFOSG_GL_MATRICES_AVAILABLE = ONOSG_GL_VERTEX_FUNCS_AVAILABLE = ONOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE = ONOSG_GL_FIXED_FUNCTION_AVAILABLE = ON
GLES2
OSG_GL1_AVAILABLE = OFFOSG_GL2_AVAILABLE = OFFOSG_GL3_AVAILABLE = OFFOSG_GLES1_AVAILABLE = OFFOSG_GLES2_AVAILABLE = ONOSG_GL_LIBRARY_STATIC = OFFOSG_GL_DISPLAYLISTS_AVAILABLE = OFFOSG_GL_MATRICES_AVAILABLE = OFFOSG_GL_VERTEX_FUNCS_AVAILABLE = OFFOSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE = OFFOSG_GL_FIXED_FUNCTION_AVAILABLE = OFF
3.4 插件
插件至少需要选择 freetype 插件,用来读取 ttf字体。右侧为FreeType插件地址:https://github.com/stmh/osg/tree/iphone/IPhone_Project/3rdParty3.5 应用和示例
对Applications和Exameple进行设置 ,applications是诸如osgviewer, osgconv, osgversion等,Examples是例子程序。BUILD_OSG_APPLICATIONS=OFFBUILD_OSG_EXAMPLES=OFF
如果上述打开,则可能生成错误,到时候自己改吧。对OSG贡献代码的人并不怎么考虑iOS。
3.6 编译
点击 'Generate' 生成工程,然后编译 BUILD_ALL。 0 0
- iOS 下编译 OSG 引擎
- Mac下编译 OSG ( OpenSceneGraph )
- OSG-2.8.2在VS2008下的配置安装(介绍一个开源的三维渲染引擎的编译)
- OSG学习:WIN10系统下OSG+VS2017编译及运行
- osg for android (三) Windows 下编译
- OSG编译
- OSG渲染引擎架构
- OSG学习笔记(一)之window下编译OSG静态库
- Windows环境下osg 3.0.1的编译及安装
- Windows环境下osg 3.0.1的编译及安装
- linux下OSG的编译及环境配置
- OSG:编译相关
- OSG源码编译
- 从源代码编译OSG
- 编译OSG及OsgOcean
- osg 在vs2008编译
- 编译OSG,OSGEarth
- OSG Windows版本编译
- Linux内核大讲堂之设备驱动的基石驱动模型(5)
- Redundant Binary Upload
- 一个简单的C++智能指针的实现
- java版 二叉树 所有递归和非递归遍历算法
- mount: mount to NFS server 'rac1' failed: RPC Error: Program not registered.
- iOS 下编译 OSG 引擎
- Java的反射机制
- Linux内核大讲堂之设备驱动的基石驱动模型(6)
- escape() encodeURI() encodeURIComponent()区别
- python
- Z-STACK之cc2530串口(POLL-DMA)驱动详解下
- iOS申请证书,Certificates, Identifiers &Profiles 简介
- 20141105 N2
- 用户空间与内核空间数据交换的方式(7)------sysctl