這年頭啥都不容易。好不容易遇到一個非常感興趣的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屬性中做如下設置:


好了,下面就可以慢慢玩了。如果心情好了我在慢慢更新吧。