首先下載所需文件:
最新版的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編程吧,祝你好運!