OSG踩坑
環(huán)境
本人當(dāng)前使用的環(huán)境是VS2013 Ultimate Update5 + WIN10。
OSG編譯安裝
- 下載編譯OSG源碼不要克隆github上的源碼,而是下載穩(wěn)定版本的OSG源碼進(jìn)行編譯。因?yàn)間ithub上的源碼處于開發(fā)階段,我們應(yīng)該優(yōu)先選擇穩(wěn)定版本,我使用的是OpenSceneGraph-3.4.0。
- 編譯OSG。OSG包含的項(xiàng)目很多,特別是包含了很多example項(xiàng)目,普通編譯完成大概要3小時(shí)。如何加快編譯速度,網(wǎng)上教程基本沒有提及。這里介紹一種快速編譯的方法:
按住Ctrl多選,選中需要編譯的項(xiàng)目,右鍵->配置->C/C+±>多處理器編譯->是(MP),debug和release都要設(shè)置,不要切換了構(gòu)建配置后就忘了設(shè)置。使用多處理器編譯,可以CPU利用率達(dá)到100%,編譯時(shí)間大概在半小時(shí)左右。
OSGEarth編譯安裝
- 除了需要下載3rdParty,還需要自己編譯第三方庫(kù),包括geos庫(kù),proj庫(kù),gdal庫(kù),sqlite庫(kù)。
- gdal庫(kù)編譯過程參考文章:
gdal(集成geos+proj.4)編譯(C++)C#開發(fā)版本。
為什么要自己編譯GDAL?因?yàn)橄螺d的第三方庫(kù)3rdParty_VS2013_v120_x86_x64_V9_small在編譯時(shí)沒問題,在運(yùn)行時(shí)會(huì)報(bào)錯(cuò):“ERROR 6: Unable to load PROJ.4 library (proj.dll), creation of OGRCoordinate”,即找不到proj的庫(kù)。按照上面的文章自己編譯是最穩(wěn)妥的選擇。 - sqlite庫(kù)編譯(可選)
下載及編譯的官方文檔:https://www.sqlite.org/cgi/src/doc/trunk/README.md
參考CSDN文章:SQLite源代碼編譯為amalgamation的sqlite3.c代碼
注意編譯時(shí),sqlite目錄結(jié)構(gòu)如下:
將Makefile.msc拷貝到bld下,運(yùn)行VS2013 x86 本機(jī)工具命令提示工具,過程類似gdal庫(kù)編譯,使用官方文檔中的命令編譯即可。注意編譯需要執(zhí)行tcl腳本,故需要安裝tcl工具。tcl工具下載鏈接:https://pan.baidu.com/s/1-_Ropg93Er2k3wxcJj4XeQ
啟動(dòng)腳本
網(wǎng)上多數(shù)教程在配置環(huán)境時(shí)要求設(shè)置系統(tǒng)環(huán)境變量,這樣在正確性上沒問題,但是后期部署就不是那么方便了,因?yàn)椴渴鸬叫码娔X還要手動(dòng)設(shè)置系統(tǒng)環(huán)境變量,這樣會(huì)顯得很笨拙和麻煩。能自動(dòng)處理的事情,就不要手動(dòng)去做,人怕麻煩,人會(huì)出錯(cuò)。所以我們?cè)谂渲铆h(huán)境變量時(shí),使用腳本來配置,配置完啟動(dòng)需要啟動(dòng)的程序即可,被啟動(dòng)的程序即在設(shè)置好的環(huán)境變量中工作了。我使用的腳本如下:
osg_控制臺(tái).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进行索引