OSG踩坑
環(huán)境
本人當(dāng)前使用的環(huán)境是VS2013 Ultimate Update5 + WIN10。
OSG編譯安裝
- 下載編譯OSG源碼不要克隆github上的源碼,而是下載穩(wěn)定版本的OSG源碼進(jìn)行編譯。因為github上的源碼處于開發(fā)階段,我們應(yīng)該優(yōu)先選擇穩(wěn)定版本,我使用的是OpenSceneGraph-3.4.0。
- 編譯OSG。OSG包含的項目很多,特別是包含了很多example項目,普通編譯完成大概要3小時。如何加快編譯速度,網(wǎng)上教程基本沒有提及。這里介紹一種快速編譯的方法:
按住Ctrl多選,選中需要編譯的項目,右鍵->配置->C/C+±>多處理器編譯->是(MP),debug和release都要設(shè)置,不要切換了構(gòu)建配置后就忘了設(shè)置。使用多處理器編譯,可以CPU利用率達(dá)到100%,編譯時間大概在半小時左右。
OSGEarth編譯安裝
- 除了需要下載3rdParty,還需要自己編譯第三方庫,包括geos庫,proj庫,gdal庫,sqlite庫。
- gdal庫編譯過程參考文章:
gdal(集成geos+proj.4)編譯(C++)C#開發(fā)版本。
為什么要自己編譯GDAL?因為下載的第三方庫3rdParty_VS2013_v120_x86_x64_V9_small在編譯時沒問題,在運行時會報錯:“ERROR 6: Unable to load PROJ.4 library (proj.dll), creation of OGRCoordinate”,即找不到proj的庫。按照上面的文章自己編譯是最穩(wěn)妥的選擇。 - sqlite庫編譯(可選)
下載及編譯的官方文檔:https://www.sqlite.org/cgi/src/doc/trunk/README.md
參考CSDN文章:SQLite源代碼編譯為amalgamation的sqlite3.c代碼
注意編譯時,sqlite目錄結(jié)構(gòu)如下:
將Makefile.msc拷貝到bld下,運行VS2013 x86 本機工具命令提示工具,過程類似gdal庫編譯,使用官方文檔中的命令編譯即可。注意編譯需要執(zhí)行tcl腳本,故需要安裝tcl工具。tcl工具下載鏈接:https://pan.baidu.com/s/1-_Ropg93Er2k3wxcJj4XeQ
啟動腳本
網(wǎng)上多數(shù)教程在配置環(huán)境時要求設(shè)置系統(tǒng)環(huán)境變量,這樣在正確性上沒問題,但是后期部署就不是那么方便了,因為部署到新電腦還要手動設(shè)置系統(tǒng)環(huán)境變量,這樣會顯得很笨拙和麻煩。能自動處理的事情,就不要手動去做,人怕麻煩,人會出錯。所以我們在配置環(huán)境變量時,使用腳本來配置,配置完啟動需要啟動的程序即可,被啟動的程序即在設(shè)置好的環(huán)境變量中工作了。我使用的腳本如下:
osg_控制臺.cmd
set OSG_ROOT_DIR=E:\Projects\OSG
set PATH=%PATH%;%OSG_ROOT_DIR%\OpenSceneGraph\build\3.4.1_VS2013\bin;%OSG_ROOT_DIR%\3rdparty\3rdParty_VS2013_v120_x86_x64_V9_small\3rdParty_x86_x64\x86\bin;%OSG_ROOT_DIR%\gwaldron-osgearth\build\vs2013\bin\Debug;E:\Projects\OSG\gwaldron-osgearth\build\vs2013\lib\Debug;%OSG_ROOT_DIR%\3rdParty\gdal202\bin;%OSG_ROOT_DIR%\3rdParty\geos-3.6.3\bin;%OSG_ROOT_DIR%\3rdParty\proj-4.9.3\bin;
set OSG_FILE_PATH=%OSG_ROOT_DIR%\data\OpenSceneGraph-Data
cmd.exe
osg_VS2013.cmd
set OSG_ROOT_DIR=E:\Projects\OSG
set PATH=%PATH%;%OSG_ROOT_DIR%\OpenSceneGraph\build\3.4.1_VS2013\bin;%OSG_ROOT_DIR%\3rdparty\3rdParty_VS2013_v120_x86_x64_V9_small\3rdParty_x86_x64\x86\bin;%OSG_ROOT_DIR%\gwaldron-osgearth\build\vs2013\bin\Debug;E:\Projects\OSG\gwaldron-osgearth\build\vs2013\lib\Debug;%OSG_ROOT_DIR%\3rdParty\gdal202\bin;%OSG_ROOT_DIR%\3rdParty\geos-3.6.3\bin;%OSG_ROOT_DIR%\3rdParty\proj-4.9.3\bin;
set OSG_FILE_PATH=%OSG_ROOT_DIR%\data\OpenSceneGraph-Data
cd “S:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE”
start devenv.exe
總結(jié)
- 上一篇: 蚂蚁财富是正规平台嘛?蚂蚁财富上面有哪些
- 下一篇: ES:记录curator+nfs进行索引