編譯OSG
- 下載數據源
http://www.openscenegraph.org/downloads/stable_releases/
- 下載最全的(含full)第三方庫
https://download.osgvisual.org/
- 官網下載源碼
http://www.openscenegraph.org/index.php/download-section/stable-releases
- 下載cmake-gui
https://cmake.org/ - 新建OSG文件夾,將下載好的資源解壓在OSG文件夾中。
新建INSTALL文件夾,用於編譯成功後導出需要的include、lib、data,將三方庫放在OSG文件夾下。 - 使用cmake生成vs解決方案(根據需要進行選擇)
點擊Configue,進行相關配置。
我是按照如上配置進行的,再點擊Configue
這個不管了。下面的我也未處理。
64 bit architecture detected
searching TIFF -->tiff.h<-->libtiff<-->F:/OSG/3rdparty<--
searching FREETYPE -->ft2build.h<-->freetype;freetype2311MT;freetype234;freetype234MT;freetype235;freetype237;freetype238;freetype244;freetype250;<-->F:/OSG/3rdparty<--
searching CURL -->curl/curl.h<-->libcurl;curllib<-->F:/OSG/3rdparty<--
searching JPEG -->jpeglib.h<-->libjpeg;jpeg<-->F:/OSG/3rdparty<--
searching GDAL -->gdal.h<-->gdal;gdal16<-->F:/OSG/3rdparty<--
searching GLUT -->GL/glut.h<-->glut32<-->F:/OSG/3rdparty<--
searching GIFLIB -->gif_lib.h<-->ungif;libungif;giflib<-->F:/OSG/3rdparty<--
searching ZLIB -->zlib.h<-->z;zlib;zlib1<-->F:/OSG/3rdparty<--
searching PNG -->png.h<-->libpng;libpng13;libpng15;libpng16<-->F:/OSG/3rdparty<--
searching LIBXML2 -->libxml2<-->libxml2<-->F:/OSG/3rdparty<--
Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR)
Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Could NOT find GStreamer (missing: GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES GSTREAMER_VERSION GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES GSTREAMER_APP_INCLUDE_DIRS GSTREAMER_APP_LIBRARIES GSTREAMER_PBUTILS_INCLUDE_DIRS GSTREAMER_PBUTILS_LIBRARIES)
Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)
Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Found unsuitable Qt version "" from NOTFOUND
Could NOT find Qt3 (missing: QT_QT_LIBRARY QT_INCLUDE_DIR QT_MOC_EXECUTABLE)
Could NOT find FLTK (missing: FLTK_LIBRARIES FLTK_INCLUDE_DIR FLTK_FLUID_EXECUTABLE)
Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS)
Configuring done
點擊Generate,很快會提示Generating done。
7. 選擇對應版本的VS打開項目,進行編譯。
選擇OpenSceneGraph解決方案,右鍵選擇“批生成”
選擇ALL_BUILD的Release(可以根據需要選擇),點擊生成。編譯需要3個小時左右,編譯完成後,取消ALL_BUILD的Release的選擇,重新選擇INSTALL的Release,點擊生成,這個快。
生成完成之後,在INSTALL的文件下就會出現include、bin、lib等文件夾。
編譯OSGEarth
1.在F盤新建文件件,OSG3.4.0,將3rdarty和編譯好的OSG全部放在這個文件夾下,將data也放在該文件夾下。
2.配置環境變量
OSG_FILE_PATH:F:\OSG3.4.0\data
PATH:F:\OSG3.4.0\bin;F:\OSG3.4.0\share\OpenSceneGraph\bin
3.將CMakeLists.txt拖入,Cmake中,點擊Configue
4.檢查全部三方配置,有的都配置好,記得配置INSTALL。
把LINKER後面的內容去掉。再次點擊Configue
Could not find ROCKSDB
Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)
Set GLCORE_ROOT as the parent of the directory containing the OpenGL core profile header. (missing: GLCORE_INCLUDE_DIR)
Plugins will be installed under osgPlugins-3.4.0 directory.
Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)
Configuring done
5.點擊Generate,生成源碼。使用對應的VS打開OSGEARTH項目。
選擇OSGEARTH解決方案,右鍵選擇“批生成”
選擇ALL_BUILD的Release(可以根據需要選擇),點擊生成。編譯需要2個小時左右,編譯完成後,取消ALL_BUILD的Release的選擇,重新選擇INSTALL的Release,點擊生成,這個快。
6.CMD驗證。
驗證OSG:osgviewer cow.osg
驗證OSGEarth:osgviewer simple.earth
7.新建C++項目驗證。
配置“鏈接器”=》“輸入”=》“附加依賴項”
OpenThreads.lib
osg.lib
osgDB.lib
osgUtil.lib
osgGA.lib
osgFX.lib
osgViewer.lib
osgText.lib
osgdb_osgearth_feature_ogr.lib
osgdb_osgearth_feature_tfs.lib
osgdb_osgearth_feature_wfs.lib
osgEarth.lib
osgEarthAnnotation.lib
osgEarthFeatures.lib
osgEarthSymbology.lib
osgEarthUtil.lib
osgSim.lib
osgShadow.lib
osgManipulator.lib
osgWidget.lib
osgVolume.lib
osgUI.lib
osgTerrain.lib
osgPresentation.lib
osgParticle.lib
osgEarthSplat.lib
osgAnimation.lib
int main()
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
return viewer.run();
}
int main()
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("simple.earth"));
return viewer.run();
}
收工!待續C#的exe調試C++COM組件。