Mac下编译 OSG ( OpenSceneGraph )

最近要用到OpenSceneGraph得编译它,但MacOS使用开源软件确实比linux和windows麻烦。


第一轮,修改portfile

我使用MacPorts管理软件,能正常安装OSG,而且是最新版本,但默认没有编译osgQt,我研究很久,才发现可以通过修改portfile实现

sudo port edit OpenSceneGraph    # 打开OSG配置文件
在最后几行找到了选项,默认是关闭的,
将OSG_USE_QT:BOOL=OFF  改为  OSG_USE_QT:BOOL=ON
满心欢喜以为成功了,结果cmake还是找不到osgQt。

但有一点,所有的依赖库者装上了,算成功了一半。


第二轮,手动控制安装流程

在研究MacPorts软件管理流程后,我手动控制OSG的配置、编译与安装,可参考 http://blog.csdn.net/lainegates/article/details/46240891

sudo port configure OpenSceneGraph
sudo port build OpenSceneGraph
sudo port destroot OpenSceneGraph #这个必须有,否则MacPorts还是会下载编译好的OSG
sudo port install OpenSceneGraph
这将次找得到osgQt了,我以为大功告成了,结果我还是太年经。在使用OSG编译我的软件的时候,出现类似于 “symbol osgText::readFontFile not found” 和 "symbol osgText::Text::setText not found"  的错误。


第三轮,出奇制胜

我研究好几天,初步确定是OSG代码的问题,于是我将官网可下载的几个版本挨个下载试了一遍,结果还是错。真是好事多磨啊。

正在这时,我突然之前使用homebrew时,OSG是能正常编译的!于是我查找了homebrew的formula文件,发现 homebrew使用的是普通用户看不到的源代码链接:http://trac.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.3.3.zip

使用这个代码编译后,一切正常。

这时我明白了MacPorts为什么在OSG上不使用编译的方式,是因为有问题。所以它下载特殊编译好的。


经过二年多的使用,发现MacOS在开源软件方面确实受限制,别的平台使用正常的软件在这个平台上有可能会出问题。

你可能感兴趣的:(macos,macports,OSG,OpenSceneGraph)