OSG&OSGEarth編譯心得

編譯OSG

  1. 下載數據源
    http://www.openscenegraph.org/downloads/stable_releases/
    在這裏插入圖片描述
  2. 下載最全的(含full)第三方庫
    https://download.osgvisual.org/
    在這裏插入圖片描述
  3. 官網下載源碼
    http://www.openscenegraph.org/index.php/download-section/stable-releases
    在這裏插入圖片描述
  4. 下載cmake-gui
    https://cmake.org/
  5. 新建OSG文件夾,將下載好的資源解壓在OSG文件夾中。
    在這裏插入圖片描述
    新建INSTALL文件夾,用於編譯成功後導出需要的include、lib、data,將三方庫放在OSG文件夾下。
  6. 使用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組件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章