OSG+VS2010+win7環境搭建
一.相關准備
a) Osg源碼
當前最新版:OpenSceneGraph的3.0.0.zip
下載鏈接:
b) Osg第三方庫
http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip
c) 數據包
當前最新版:OpenSceneGraph-Data-3.0.0.zip
下載鏈接:
d) 安裝源碼工具
cmake-2.8.4-win32-x86.exe。
二、編譯准備
為了編譯的順利進行,將下載的文件組織如下:
在C盤建立一個OSG的文件夾,然后其他文件如下放置:
D:\OSG\OpenSceneGraph:源碼解壓后放於此
D:\OSG\3rdParty:第三方依賴庫解壓后放於此
D:\OSG\OpenScenGraph-Data-3.0.0.zip:數據包解壓后放於此。
三.安裝源碼
a) 安裝CMake之后,打開CMake -gui.exe
b) 源碼OpenSceneGraph-3.0.0.zip解壓后,將里頭的CmakeLists.txt,拖到Cmake界面。
如圖:
c) 點擊Configure,選擇Visual Studio 10(x86),finish后進行相關設置:
ACTUAL_3RDPARTY_DIR值D:/OSG/3rdParty;
BUILD_OSG_EXAMPLES :ON
CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph/;
如下圖:
e)點擊Configure后,將Advanced打勾,將BUILD_MFC_ EXAMPLE設置為on,然后進行最后一次的Configure配置。
f)點擊Generate,自此建構完成。
四.編譯階段
a) 用VS2010打開OpenSceneGraph.sln(此文件在D:\OSG\OpenSceneGraph下),
生成-批生成,對All_BUILD進行生成,選擇(Debug和Release兩個版本),這段編譯時間是很長的,估計4-5個小時。
b) 第1步完成后,再對INSTALL也進行相應生成編譯。這段時間相應會短一點。
五.數據轉移
在C盤新建OSG文件夾
將D:\OSG\OpenSceneGraph下的bin,include,lib文件夾拷貝到C:\OSG下,將D:\OSG\OpenSceneGraph-Data-3.0.0下的數據拷貝到C:\OSG\data下;這幾個文件是OSG需要的。
六.環境變量設置
對系統變量設置如下:
OSG_FILE_PATH: C:\OSG\data
PATH:C:\OSG\bin;
可在命令行進行測試osgversion,osglogo,osgviewer cow.osg。
七.新建OSG項目測試
a) 在VS2010下新建WIN32控制台程序
b) 添加一個cpp
c) 輸入以下代碼:
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main( int argc, char **argv )
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
d)右鍵項目,選擇“屬性”,選擇“VC++目錄”,在包含目錄添加:C:\OSG\include
在庫目錄添加:C:\OSG\lib.
e) 打開項目屬性的鏈接器,輸入里,附加依賴項加上:
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
f)運行,效果如下圖:
OsgEarth編譯
OsgEarth編譯過程網上有很多,目前我遇到的最大問題是編譯GDAL源碼時,老是出現問題,這個好像是源碼就有問題,不能直接打開sln編譯,需要使用命令行編譯。下面是一篇網頁的解決方案:
http://www.cnblogs.com/carfield/archive/2012/02/27/2370472.html
原文內容如下:
首先,需要說明的是關於GDAL入門的一些知識,在李民錄先生的博客http://blog.csdn.net/liminlu0314/article/list/1?viewmode=contents上已經有比較好的說明介紹了,在這里,我引用他的博文,在他的基礎上,做一些符合自己嘗試經歷的修改。
在這里,我使用源碼編譯出C#可以使用的dll靜態文件。
一、簡單的編譯
1、簡單的認識
首先進入GDAL的源代碼目錄,可以看到有幾個sln為后綴的文件名,比如makegdal10.sln,makegdal80.sln,makegdal71.sln,makegdal90.sln 。這些文件是VisualStudio的工程文件,后面的數字對應的VS的版本號,71表示的VS2003,80表示VS2005,90表示VS2008,還有10表示VS2010等。根據自己電腦安裝的VS版本,打開對應的文件,如下圖所示(使用VS2008SP1版本,打開makegdal90.sln文件):
2、使用cmd命令行編譯
在操作之前,需要說明點的是,gdal源碼在至少1.7.0版本之前都出現的錯誤
修改Gdal中的bug,Source Files\leveller\levellerdataset.cpp文件171行
{ “?, kPI / 180.0, UNITLABEL_DEGREE },將“ “? ”修改為“ ”? “ ”,保存;
1.9.0不存在這樣的毛病。
1)使用cmd命令行編譯,首先在“開始菜單\所有程序\Microsoft Visual Studio 2008\Visual Studio Tools\ Visual Studio 2008命令提示”,點擊“Visual Studio 2008 命令提示”會彈出下面的界面:
2)然后使用cd命令,切換到GDAL的源代碼目錄,如下圖所示:
3)切換到GDAL的源代碼目錄后,依次敲入下面的命令行后回車,等待編譯結束即可。
nmake -f makefile.vc
nmake -f makefile.vc install
nmake -f makefile.vc devinstall
同時還有其他的命令,如:
nmake -f makefile.vc clean
nmake -f makefile.vc MSVC_VER=1400clean
nmake -f makefile.vc MSVC_VER=1400DEBUG=1
這三條命令可以不用管。
上面六行的命令含義依次是:
編譯GDAL庫
編譯GDAL庫,並安裝(這里安裝的意思就是將生成的dll,exe等文件拷貝到C:\warmerda\bld目錄),
編譯GDAL庫,並安裝開發者模式(安裝的意思同上,開發者模式意思是將開發用的include文件夾中的頭文件和lib文件一同拷貝到C:\warmerda\bld目錄,此時會在C:\warmerda\bld目錄中多出來兩個文件夾,分別是include和lib,分別存放的是GDAL的頭文件和lib文件,用於調用GDAL庫使用)。
清理GDAL庫,同時會刪除編譯GDAL庫所生成的臨時文件,作用相當於在VS環境中的清理命令。
作用同上,但是添加了一個MSVC_VER=1400,表示使用VS2005編譯。
編譯GDAL庫的debug模式,可以用來調試GDAL源碼。
4)在此之后
鍵入“cd C:\gdal-1.5.0\swig\csharp”,進入C#源文件所在的文件夾。當然,如果你文件夾位置不是這里,便需要更換地址。
鍵入“nmake /f makefile.vc”,編譯完后生成8個DLL文件,連同之前在c盤會生成warmerda\bld\bin里面也能找到一個DLL共九個。
至此,九個DLL便全部出現。