osg學習樣本之遇到問題四骨骼動畫編譯osgCal

來源:互聯網
上載者:User

今天學到書《OpenSceneGraph三維渲染引擎編程指南》的骨骼動畫樣本,遇到了編譯osgCal問題,書上說的不詳細,網上就查到一遍相關文章

http://www.cnkinect.com/thread-15697-1-1.html

寫的挺完整,我照著做基本沒大問題,這裡自己在他的文章基礎上重新整理總結了一下

1、 編譯Cal3D,目的就是得到cal3d_d.lib、cal3d_d.dll及cal3d.lib,cal3d.dll,後面編譯osgCal依賴cal3d庫檔案(本例中只用到庫檔案,動態庫只是附屬物)。


1.1、cal3d源碼擷取,通過SVN擷取最新的源碼,最新源碼:
http://svn.gna.org/svn/cal3d/trunk 。下載的源碼檔案包含以下三個檔案夾


1.2、開啟cal3d,找到cal3d.sln,開啟該工程,包含12個工程,這裡我們只需要buildCal3D工程,選擇該工程,右擊,在彈出框中選中build,單擊。等待幾分鐘就可以在bin檔案下的Debug和Releas得到cal3d_d.lib、cal3d_d.dll(debug模式)及cal3d.lib、cal3d.dll(release模式)。


1.3、在cal3d目錄下建立lib、include、bin檔案夾,將cal3d_d.dll、cal3d.dll拷貝到bin檔案;cal3d_d.lib、cal3d.lib拷貝到lib檔案夾;將src的所有檔案拷貝到include檔案夾。到這裡編譯osgCal的準備工作就完成了。

2、 編譯osgCal,編譯osgCal就是為了得到osgCald.dll、osgCald.lib及osgCal.dll、osgCal.lib(後面帶d的是在debug模式下得到的,不帶的是release模式)。


2.1、svn擷取最新源碼,最新源碼擷取地址:

https://osgcal.svn.sourceforge.net/svnroot/osgcal/trunk/osgCal


2.2、開啟Cmake,產生osgCal解決方案。將osgCal檔案下的CMakeLists.txt拖到CMake
2.8.7。
點擊Configure,選擇編譯的環境


2.3、安照下面的要求,配置參數。

這是重點。這裡的include路徑及lib檔案幾乎都是手動加過去的。
對幾個重要的參數作個解釋,其他參數自行修改:


CAL3D_INCLUDE_DIR      cal3d的include檔案的路徑(E:/cal3d/cal3d/include)
CAL3D_LIBRARY          cal3d的lib檔案(E:/cal3d/cal3d/lib/cal3d_d.lib)
OPEN_THREADS_INCLUDE_DIR
OpenThreads的include路徑
(D:/osgSDK/OpenSceneGraph-2.8.2/include/OpenThreads)
OPEN_THREADS_LIBTARY
OpenThreads的lib路徑(D:/osgSDK/OpenSceneGraph-2.8.2/lib/OpenThreads)
OSG_INCLUDE_DIR         
osg的include檔案路徑(D:/osgSDK/OpenSceneGraph-2.8.2/include)
OSG_LIBRARY            
osg的lib檔案(D:/osgSDK/OpenSceneGraph-2.8.2/lib/osg.lib)


2.4、參數配置完畢後,第二次點擊configure。
確定無誤後點擊Generate,顯示Configuring done,表明配置成功,將產生解決方案。
注意:這裡include及lib路徑要與osgCal工程下的Tools-Options-Projects
and Solutions-C++ Directories的include及lib路徑相一致。要是在CMake中未添加這些include及lib路徑(前提是Generating
done),在工程中再添加include及lib路徑也是可以的。Cmake中允許有警告,但是不要有錯誤,否則編譯會通不過去。


2.5、開啟osgCal.sln解決方案,注意:檢查Tools-Options-Projectsand
Solutions-C++ Directories中的include及lib路徑是否正確。Build
ALL_BUILD。等待十幾分鐘,顯示6 succeeded,0 faild,表明編譯成功。

我在編譯的時候遇到無法解析的錯誤,在相應遇到問題的工程屬性下加上lib依賴項Cal3D.lib,再進行編譯,成功。


2.6、將osgCald.dll、osgCal.dll拷貝到bin檔案;osgCald.lib、osgCal.lib拷貝到lib檔案夾。
經過千辛萬苦,終於得到了所需要的osgCald.dll、osgCal.dll及osgCald.lib、osgCal.lib。


2.7、配置osgCal環境

將osgCal下的include裡面osgCal放到之前編譯OSG的那個include下。相應的dll和lib也放到對應的目錄下,這樣就不用再配置環境變數了。就可以開始跑例子啦。

 

註:最後如果碰到問題大多應該是環境配置的問題,我是把所有要用的include dll lib 都放到了一起,包括為編譯osgCal所產生的Cal3D的dll lib,這樣就不用再另外設定環境變數路徑神馬的了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.