第一部分:準備資源
需要準備的資源如下:
OSG:OSG源代碼:OpenSceneGraph-3.0.0.zip;
OSG示例數據:OpenSceneGraph-Data-3.0.0.zip;
OSG依賴的第三方庫:3rdParty_win32binaries_vs90sp1
下載這些資源可以到http://trac.openscenegraph.org/projects/osg//wiki/Downloads
還需要CMake工具,可以從這個網站下載:
http://www.cmake.org/ 我用的是:cmake-2.8.11.2-win32-x86.exe
第二部分:準備工作
在D盤中建立目錄,存放OSG源碼與編譯生成的VS工程。這裏我建立的目錄如下:
D:\ThirdPartyLib\OSG3.0-VS2008
在這個目錄下建立三個文件夾
1、OpenSceneGraph-3.0.0(放置OSG最新庫文件,將openSceneGraph-3.0.0.zip解壓到這個文件夾下)
2、OpenSceneGraph-Data-3.0.0(放置OpenSceneGraph-Data-3.0.0.zip的解壓數據,主要用於examples的演示)
3、3rdParty_VC9sp1_x86_x64_V7(放置第三方庫,將3rdParty_VC9sp1_x86_x64_V7.zip解壓到這個文件夾下)
第三部分:用Cmake生成project和solution文件1、 在D:\ThirdPartyLib\OSG3.0-VS2008\OpenSceneGraph-3.0.0下新建兩個文件夾,分別命名爲
build、bin,用於放置編譯文件。
2.解壓cmake-2.8.11.2-win32-x86.exe,在解壓後的文件中cmake2.8/bin中打開
cmake-gui.exe,將D:\ThirdPartyLib\OSG3.0-VS2008\OpenSceneGraph-3.0.0下的CMakeLists.txt
拖到打開的cmake-gui.exe的界面上。
3.在打開的cmake-gui.exe界面上的第二項Where to build thebinaries選項中,在路徑的末尾加上
“/build”,即D:/ThirdPartyLib/OSG3.0-VS2008/OpenSceneGraph-3.0.0/build。在這個文件夾中將
存放cmaker生成的二進制文件。
4.按下左下角的configure,此時軟件會彈出對話框詢問你要生成哪種項目工程,我們選擇
Visual Studio 9 2008,然後點擊Finish確定。
5.在此之後,軟件便開始configure這個項目,它會分析項目中已有的相關配置。然後將有疑問
的未配置項目標定爲紅色。
6、設置相關的cache
value參數,這裏主要設置的參數包括:
(1)ACTUAL_3RDPARTY_DIR:設置爲前面的D:/ThirdPartyLib/OSG3.0-VS2008/3rdParty_x86_x64,
ACTUAL_3DPARTY_DIR即整合的第三方開發庫所在目錄,如果下載了OSG提供的整合好的第三方
開發庫,那麼在這裏設置解壓縮之後它的位置,CMake將在下次配置時自動搜索所需的Lib文件
和頭文件路徑。
(2)BUILD_OSG_EXAMPLES:是否編譯OSG所有例子程序的選項,應當選擇“ON”。即編譯實例
(3) CMAKE_INSTALL_PREFIX:D:\Program Files\OSG30VS2008
(4).如果同時裝了Microsoft Visual C++ 6.0,就要注意把路徑改到vs2008中。
7、配置好以上四個項目後,按下“Configure”按鈕進行本次配置,而與當前所配置的項相關聯的選項將在
下一次配置時再次變紅,等待用戶重新進行配置;第一次配置完成後,將右上角的Show Advanced
Values 複選框選擇上,將MFC EXAMPLE 設置爲ON.忽略其他未配置項,一直點擊“Configure”
按鈕直到“Generate”按鈕變回可用。按下“Generate”按鈕,此時將生成用戶所需的所有
Visual Studio 9 2008工程文件。
第四部分:用VS2008編譯OSG工程
1、進入D:\ThirdPartyLib\OSG3.0-VS2008\OpenSceneGraph\build文件夾,雙擊OpenSceneGraph.sln
文件, 則會在VS2008中打開整個解決方案。
2、使用Debug編譯模式,選擇項目列表中的ALL_BUILD,然後點擊右鍵,選擇菜單中的“Build”命令
編譯整個解決方案。
3、整個編譯過程會持續很長時間,需要耐心等待,編譯完成後,在項目列表中,選擇“INSTALL”子項目,
然後點擊右鍵,選擇菜單中的“Build”執行安裝程序,安裝的目錄位置就是在CMake中設置的
CMAKE_INSTALL_PREFIX選項的屬性值。
4、將編譯選項設置爲Release,重複這項2、3步驟。至此,OSG3.0.1源碼的編譯工作全部完成。
編譯好的文件已經全部安裝在D:\Program Files\OSG30VS2008中。
第五部分:設置環境變量
用戶變量:OSG_FILE_PATH
=D:\ThirdPartyLib\OSG3.0-VS2008\OpenSceneGraph-Data-3.0.0
系統變量path下添加D:\Program Files\OSG30VS2008\bin,主要用於dll的調用。
測試工程是否可用:
在筆記本的左下角打入cmd,就會出現cmd.exe,打開它,在命令行中輸入輸入osgViewerd.exe cow.osg
回車,如果能成功運行,程序將會打開一個“母牛”的3D模型。
第六部分:設置VS2008的路徑
打開VS2008,工具->選項->項目解決方案->VC++目錄,分別設置OSG的頭文件及庫文件
包含文件裏添加:D:\Program
Files\OSG30VS2008\include
庫文件添加:D:\Program
Files\OSG30VS2008\lib
第七部分:新建OSG項目測試
(1)打開VS2008,創建一個WIN32控制檯程序。
(2)注意:請選空項目,在源程序中添加一個新項,添加一個C++文件(cpp)。
(3)在這個CPP文件中輸入代碼:
#include<osgViewer/Viewer>
#include <osgDB/ReadFile>
intmain( int, char ** )
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
如果編譯是Release版本,編譯的庫都有的命名爲*.lib
OpenThreads.lib osg.lib osgDB.lib osgUtil.lib osgGA.lib osgViewer.lib osgText.lib
如果是Debug版本,要添加對應的*d.lib庫
OpenThreadsd.lib osgd.lib osgDBd.lib osgUtild.lib
osgGAd.lib osgViewerd.lib osgTextd.lib
第八部分:出現的錯誤
用前面的程序運行時出現如下錯誤:生成“cmd.exe”時出錯。
查了查資料,看到解釋是:VS2008的環境變量設置不對
應該如下解決:
“工具--選項--項目和解決方案--VC++
目錄”
增加如下幾行:
$(SystemRoot)/System32
$(SystemRoot)
$(SystemRoot)/System32/wbem