这年头啥都不容易。好不容易遇到一个非常感兴趣的stage,结果还没面试,先给来了两道编程题。 题目到不是很难,不过要使用的这个类库我确实是一点都不了解。不过人家也在邮件了说了,出这种题目的理由就是为了测试自主解决难题和自我学习的能力。好吧,那么让我们开始吧。
磨刀篇
OpenSceneGraph是一个开源的场景建模C++库。在某些方面还算流行,不过今年来有些底气不足。 和众多开源项目类似,最大的问题就是文档老旧残缺,各种函数说明语焉不详。 在这里我想瞎扯几句,好的文档是一个项目成功的必然条件。君不见PHP,Python等等文档都做得非常优秀。每个函数都有具体的讲解,下面还附带应用实例。PHP的文档又更出色一些,除了官方解说还允许用户留言。下面能找到许多关于该函数的最佳实践。与此相反,第一次搜索OSG文档的时候,我实在是倒抽了一口冷气。这他喵的也能叫文档?无非把函数接口用列表列出来而已,无实用说明,无具体实例。不得不说作者实在是惜字如金,看这意思是让我们自己一个一个试?还是直接看源代码?这尿性连OpenCV都不如阿……
撇开文档暂且不说,这样的开源项目通常都非常难安装。用作者的话说就是把编译的选择和快乐留给用户,稍微直白的翻译下,他的意思就是你们能不能装我不知道,反正在我的电脑系统上是可以的。回想当年编译OPENCV的痛苦……这难不成又要折腾一次?
你们也太小看小哥我了,自从有了上次的经验,哥再也不会SB的自己编译源代码了。APT GET INSTALL解决一切! 当然了,Ubuntu库中的版本不是很新,只要不追求最新的功能,但用稳定版开发也不错嘛。
于是,
sudo apt-get build-dep openscenegraph
稍等片刻就完成了。 要说UBUNTU比MAC OSX唯一强的地方就是这里了,包管理实在是太方便了阿浑蛋!
装好之后用osgversion确认一下,如果返回类似下面的东西就标示安装顺利完成了:
OpenSceneGraph Library 3.0.1
那么来看看包和头文件都安装到哪里了吧:
pkg-config --libs openscenegraph
pkg-config --cflags openscenegraph
下面可以设置一下环境变量,告诉OS去那里找需要的库和头文件:
export OSG_FILE_PATH=/usr/bin/data
export LD_LIBRARY_PATH=//lib
export PATH=//include
有了这些信息我们就可以开始开发了。我使用的是免费又好用的Eclipse CDT, 新建一个project, 然后在project属性中做如下设置:
好了,下面就可以慢慢玩了。如果心情好了我在慢慢更新吧。