首先下載下傳所需檔案:
最新版的osg庫(我的版本:OpenSceneGraph-3.0.1.zip),可以在osg官網下載下傳: http://www.osgchina.org/projects/osgcn/wiki.php
安裝源代碼所需要的工具CMAKE:(我的版本:cmake-2.6.4-win32-x86.zip) http://www.cmake.org/cmake/resources/software.html
第三方支援(圖像)庫:(我的版本:3rdParty_Win32Binaries_vc90sp1.zip) http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies,
根據不同開發工具選擇不同的檔案,我的是vs2008
示例資料檔案包:(我的版本是:OpenSceneGraph-Data-2.8.0.zip)可以在osg官網下載下傳
其次準備編譯環境:
在D盤建立osg檔案夾,将上述四個檔案拷貝解壓到osg檔案夾下(注意:需要把cmake工具最好也解壓到這兒,否則可能會出現錯誤):
D:\OSG\3rdParty_x86_x64(放置圖像庫)
D:\OSG\cmake-2.8.8-win32-x86(放置cmake工具)
D:\OSG\OpenSceneGraph-3.0.1(放置osg庫檔案)
D:\OSG\OpenSceneGraph-Data-3.0.0(示例資料解壓檔案),主要用于example展示
開始編譯:
在D:\OSG\OpenSceneGraph-3.0.1下建立兩個檔案夾build和bin用于放置編譯檔案
輕按兩下打開D:\OSG\cmake-2.8.8-win32-x86\bin下的cmake-gui.exe檔案,把OpenSceneGraph-3.0.1下的CMakeLists.txt拖到cmake界面,設定sourcecode和binaries的檔案路徑
D:/OSG/OpenSceneGraph-3.0.1(源碼路徑)、D:/OSG/OpenSceneGraph-3.0.1/build(編譯的二進制檔案路徑)
設定cache value參數:
ACTUAL_3RDPARTY_DIR,:設定為前面的D:\OSG\3rdParty_x86_x64\x86(因為檔案夾下有x86和x64兩個檔案夾)
BUILD_OSG_EXAMPLES :ON,即編譯執行個體
CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph-3.0.1/bin ,設定編譯成功後,相關的庫檔案存放的位址,切勿忘記
點選configure按鈕,彈出選擇工具,我的是visual studio 2008, 進行第一次配置
第一次配置完成後,将mfc example 設定為on,将右上角的show advanced values 複選框選擇上.
點選configure進行第二次配置,配置完成後,點選generate按鈕開始生成
generate完成以後會在D:\OSG\OpenSceneGraph-3.0.1\build檔案下生成OpenSceneGraph.sln
用vs進行編譯
用vs2008打開OpenSceneGraph.sln解決方案
點選“生成--批生成”菜單,選擇ALL BUILD的debug和release版本,開始生成,這需要很長很長的時間
……………………
完成以後,又生成INSTALL的debug和release版本,仍然需要很長時間
………………
結束以後會發現在D:/OSG/OpenSceneGraph-3.0.1\bin目錄下生成了幾個檔案夾
設定環境變量
在系統變量Path中添加D:\OSG\OpenSceneGraph-3.0.1\bin\bin,用于dll的調用
建立一個使用者變量OSG_FILE_PATH,設定值為D:\OSG\OpenSceneGraph-Data-3.0.0,用于調用example
打開VS2008,工具->選項->項目解決方案->VC++目錄,分别設定OSG的頭檔案及庫檔案
包含檔案裡添加:D:/OSG/OpenSceneGraph-3.0.1\bin\include
庫檔案添加:D:/OSG/OpenSceneGraph-3.0.1\bin\lib
測試:
打開指令行,輸入osgversion會出現osg版本
輸入osgViewer cow.osg,出現奶牛
如果以上都成功,說明osg已經安裝成功
建立OSG項目測試
(1) 打開VS2008,建立一個WIN32控制台程式。
(2)注意:請選空項目,在源程式中添加一個新項,添加一個C++檔案(cpp)。
(3)在這個CPP檔案中輸入代碼:
#include "windows.h" //如果不添加這個頭檔案,會出現在gl.h中的錯誤
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int main( int, char ** )
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
(4)打開項目屬性的連結器,輸入裡加上:
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
運作程式,會出現一頭奶牛。
如果運作不成功出現“無法啟動程式,丢失osg80-osgDBd.dll檔案
網上搜了很多,說是沒有将dll檔案目錄添加到環境變量裡面,如果确定已經添加,那麼重新啟動機器。
重新開機以後,發現第一個錯誤沒有了,不過有出現說丢失zlibd1.dll檔案。
解決方法是将D:\OSG\3rdParty_x86_x64\x86\bin下的zlibd1.dll、zlib1.dll和zlibd.pdb檔案拷到D:/OSG/OpenSceneGraph-3.0.1\bin\bin目錄下,這樣應該就可以運作了。
osg在win7+vs2008下的環境搭建成功,開始學習osg程式設計吧,祝你好運!