OS X编译使用osg的方法

最近由于课程需要需要编译osg,查过一些较早的博文但始终不能正常配置和编译,刚刚去仔细查阅了官方说明和错误信息找到了解决方案,现整理如下。

一、准备

  1. osg官网下载稳定版源码或使用git,笔者使用的版本是3.4.0
  2. osg官网提供的Data Resources用于运行Examples项目
  3. osg的安装需要用到CMake,下载最新版即可,笔者为3.6.1
  4. 笔者的系统为OSX 10.11.6,Xcode版本为7.0.1
  5. 安装XQuartzXQuartz官方下载页面注意:osg在mac上的运行实际是使用了X11也就是X Windows系统,但新版的OS X不再随附X11,而是改为XQuartz计划负责免费提供。新版OS X可在Launchpad-其他中找到X11的图标,但此处其实是Apple对不再支持X11的声明的跳转链接,我们可以安装XQuartz来代替X11

二、CMake配置osg

  1. 打开CMake,将osg文件夹中的CMakeLists.txt直接拖入CMake,改变Build路径
  2. 将BUILD_OSG_EXAMPLES选中,其中包含大量示例项目可用于学习,反选OSG_USE_QT,根据开发者的说明64位的OS X不能正常使用QT,其余选项默认。
  3. 点击Configure,即便我们反选了OSG_USE_QT下方依旧会提示
Disabling QuickTime because it's not supported by the selected SDK 10.11
 
 此处无视掉即可。点击Generate生成Xcode工程,此时会出现警告 
 
MACOSX_RPATH is not specified for the following targets:
 
 下方是未找到的目标序列,定位第一个目标,以笔者为例是OpenThreads,打开CMakeLists.txt文件,查询到OpenThreads出现的位置,在上方添加一行代码: 
 
SET(CMAKE_MACOSX_RPATH 1)    //(添加这一行)
# We want to build SONAMES shared librariess
SET(OPENSCENEGRAPH_SONAMES TRUE)
SET(OPENTHREADS_SONAMES TRUE)</span>
保存后重新Generate生成工程文件,警告消失。

更多详细的参数设置可根据需要参见github中的README文档自行设置,OpenSceneGraph/README.md

三、XCode编译

  1. osg文件夹中已经生成了OpenSceneGraph.xcodeproj工程文件,进入Xcode会提示AutoCreate Schemes,此处我们选择Automatically Create Schemes,默认为ALL_BUILD-My Mac,Xcode会根据顺序依次编译,包括Examples中的工程文件;若只想编译osg改为install-My Mac即可。笔者选择ALL_BUILD不到二十分钟可以完成编译。

四、运行

运行方面还存在些问题,无法加载osgPlugins,目前可以用的方式参照Frank的 MacOS X编译OpenSceneGraph 的最后一段,使用代码添加
#include <osgDB/ReadFile>  
#include <osgViewer/Viewer>  
#include <osgViewer/ViewerEventHandlers>  
  
  
int main(int argc, char** argv)  
{  
    osg::ArgumentParser arguments(&argc,argv);  
    osgViewer::Viewer viewer(arguments);  
    osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);  
    viewer.setSceneData( loadedModel.get() );  
    viewer.addEventHandler(new osgViewer::StatsHandler);  
    viewer.setUpViewInWindow(100, 100, 800, 600);  
    return viewer.run();  
}
依赖的数据文件在Edit Scheme-Arguments Passed on Launch中添加路径,修改Scheme至相应的Example工程即可运行。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值