這年頭啥都不容易庸毫。好不容易遇到一個(gè)非常感興趣的stage,結(jié)果還沒面試衫樊,先給來了兩道編程題飒赃。 題目到不是很難,不過要使用的這個(gè)類庫我確實(shí)是一點(diǎn)都不了解。不過人家也在郵件了說了盒揉,出這種題目的理由就是為了測(cè)試自主解決難題和自我學(xué)習(xí)的能力晋被。好吧,那么讓我們開始吧刚盈。
磨刀篇
OpenSceneGraph是一個(gè)開源的場(chǎng)景建模C++庫羡洛。在某些方面還算流行,不過今年來有些底氣不足藕漱。 和眾多開源項(xiàng)目類似欲侮,最大的問題就是文檔老舊殘缺,各種函數(shù)說明語焉不詳肋联。 在這里我想瞎扯幾句威蕉,好的文檔是一個(gè)項(xiàng)目成功的必然條件。君不見PHP橄仍,Python等等文檔都做得非常優(yōu)秀韧涨。每個(gè)函數(shù)都有具體的講解,下面還附帶應(yīng)用實(shí)例侮繁。PHP的文檔又更出色一些虑粥,除了官方解說還允許用戶留言。下面能找到許多關(guān)于該函數(shù)的最佳實(shí)踐宪哩。與此相反娩贷,第一次搜索OSG文檔的時(shí)候,我實(shí)在是倒抽了一口冷氣锁孟。這他喵的也能叫文檔彬祖?無非把函數(shù)接口用列表列出來而已,無實(shí)用說明品抽,無具體實(shí)例储笑。不得不說作者實(shí)在是惜字如金,看這意思是讓我們自己一個(gè)一個(gè)試圆恤?還是直接看源代碼突倍?這尿性連OpenCV都不如阿……
撇開文檔暫且不說,這樣的開源項(xiàng)目通常都非常難安裝哑了。用作者的話說就是把編譯的選擇和快樂留給用戶赘方,稍微直白的翻譯下甩恼,他的意思就是你們能不能裝我不知道谦纱,反正在我的電腦系統(tǒng)上是可以的菱农。回想當(dāng)年編譯OPENCV的痛苦……這難不成又要折騰一次拆火?
你們也太小看小哥我了,自從有了上次的經(jīng)驗(yàn),哥再也不會(huì)SB的自己編譯源代碼了们镜。APT GET INSTALL解決一切币叹! 當(dāng)然了,Ubuntu庫中的版本不是很新模狭,只要不追求最新的功能颈抚,但用穩(wěn)定版開發(fā)也不錯(cuò)嘛。
于是嚼鹉,
sudo apt-get build-dep openscenegraph
稍等片刻就完成了贩汉。 要說UBUNTU比MAC OSX唯一強(qiáng)的地方就是這里了,包管理實(shí)在是太方便了阿渾蛋锚赤!
裝好之后用osgversion確認(rèn)一下匹舞,如果返回類似下面的東西就標(biāo)示安裝順利完成了:
OpenSceneGraph Library 3.0.1
那么來看看包和頭文件都安裝到哪里了吧:
pkg-config --libs openscenegraph
pkg-config --cflags openscenegraph
下面可以設(shè)置一下環(huán)境變量,告訴OS去那里找需要的庫和頭文件:
export OSG_FILE_PATH=/usr/bin/data
export LD_LIBRARY_PATH=//lib
export PATH=//include
有了這些信息我們就可以開始開發(fā)了线脚。我使用的是免費(fèi)又好用的Eclipse CDT赐稽, 新建一個(gè)project, 然后在project屬性中做如下設(shè)置:
![](http://ww4.sinaimg.cn/large/4d51fd80gw1ea7gbdchloj20nr0e5di0.jpg)
![](http://ww1.sinaimg.cn/large/4d51fd80gw1ea7g9yj5dgj211y0koq79.jpg)
好了,下面就可以慢慢玩了浑侥。如果心情好了我在慢慢更新吧姊舵。