MYF

在Mac环境下搭建基于Xcode的OSG开发环境

网上关于Mac上搭建OSG开发环境的方法非常少,并且还非常古老,这里记录一下如何免编译搭建最新的OSG开发环境。

安装Qt

1
brew install qt@5.7

安装目录为/usr/local/opt/qt@5.7,必要的.frameworks文件都在lib文件夹下

安装OpenSceneGraph

1
brew install open-scene-graph

安装目录为/usr/local/Cellar/open-scene-graph/3.5.5_2,可能会根据版本号发生改变。

值得一说的是,用百度搜索出来的都是现编译的,需要先cmake然后再用Xcode编译安装,我试了好几次,均以失败告终,使用Homebrew方法安装,至少是可以用的。

由于Homebrew并不会将Example安装下来,请自行去openscenegraph/OpenSceneGraph-Data GitHub下载。

配置Xcode项目

不配置的话会提示'osgViewer/Viewer' file not found错误,所以我们就是要让Xcode找到这个头文件。

  1. 进入项目设置 -> Build Settings -> Search Paths -> Header Search Paths。在Debug和Release两个条目下添加/usr/local/include
  2. 进入项目设置 -> Build Phases -> Link Binary with Libraries -> + -> add other -> 进入/usr/local/Cellar/open-scene-graph/3.5.5_2/lib目录,将需要的以.dylib后缀结束的文件添加进来即可。

测试成功

新建一个Xocde项目,完成配置Xocde项目一栏中的内容后,在main.cpp中加入以下代码,其中cow.osg文件应当在main函数中第4行指定的位置,cow.osg的下载地址:点我下载

1
2
3
4
5
6
7
8
9
10
11
12
13
#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( osgDB::readNodeFile( "someplace/cow.osg" ) );
viewer.addEventHandler(new osgViewer::StatsHandler);
viewer.setUpViewInWindow(100, 100, 800, 600);
viewer.run();
}

成功的话显示应当如下

将Qt Creator项目转换为Xcode项目

由于项目是Qt Creator的环境开发的,所以想要在Xcode下开发,就要转换为Xcode项目,方法也是非常简单的

1
2
cd MyProject/
qmake -spec macx-xcode

这样就可以打开以.xcodeproj结尾的文件了,同时也需要完成配置Xcode项目的内容