Ubuntu Build OSG
1、下載OSG
從Github上下載對應的OSG版本:OSG Github.我選版本的是3.6.3。
2、編譯OSG
Ubuntu上編譯OSG也比較簡單,執行以下命令:
cd ${OSG_ROOT_DIR}
cmake .
make
sudo make install
在執行 cmake 的時候觀察log會發現有許多依賴庫找不到,這個我們後面解決。
3、編譯/運行 OSG Examples
設置環境變量,編輯~/.bashrc文件,添加如下內容(vim ~/.bashrc):
export PATH=${PATH}:/home/myaccount/OpenSceneGraph/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib
export OSG_FILE_PATH=/home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images
編譯 OSG Examples:
- 首先從Github上下載osg-data:osg-data Github,這裏需注意一點,osg-data目錄中的內容必須拷貝到OpenSceneGraph-data目錄下,否則示例執行會出錯。
- 執行如下命令:
cd ${OSG_ROOT_DIR}
cmake . -DBUILD_OSG_EXAMPLES=1
make
sudo make install
運行OSG Examples:
- 執行命令
bash ./runexamples.bat
4、安裝OSG依賴包
執行命令:
apt-get build-dep openscenegraph
在我機器上執行這個命令,返回的結果是需要自己在source.list中添加source URIs,試了下另外一個命令,嘗試安裝依賴庫:
apt-get install openscenegraph
安裝完成後,執行cmake,依然會返回找不到以下第三方庫:
-- Could NOT find EGL (missing: EGL_LIBRARY EGL_INCLUDE_DIR)
-- Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
-- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)
-- Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES)
-- Could NOT find LibXml2 (missing: LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find GDAL (missing: GDAL_LIBRARY GDAL_INCLUDE_DIR)
-- Checking for module 'gta'
-- No package 'gta' found
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
-- Trying to find DCMTK expecting DCMTKConfig.cmake
-- Trying to find DCMTK expecting DCMTKConfig.cmake - failed
-- Trying to find DCMTK relying on FindDCMTK.cmake
-- Please set DCMTK_DIR and re-run configure (missing: DCMTK_config_INCLUDE_DIR DCMTK_dcmdata_INCLUDE_DIR DCMTK_dcmimage_INCLUDE_DIR DCMTK_dcmimgle_INCLUDE_DIR DCMTK_dcmjpeg_INCLUDE_DIR DCMTK_dcmjpls_INCLUDE_DIR DCMTK_dcmnet_INCLUDE_DIR DCMTK_dcmpstat_INCLUDE_DIR DCMTK_dcmqrdb_INCLUDE_DIR DCMTK_dcmsign_INCLUDE_DIR DCMTK_dcmsr_INCLUDE_DIR DCMTK_dcmtls_INCLUDE_DIR DCMTK_ofstd_INCLUDE_DIR DCMTK_oflog_INCLUDE_DIR DCMTK_LIBRARIES)
-- Trying to find DCMTK relying on FindDCMTK.cmake - ok
-- 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)
-- Checking for module 'cairo'
-- No package 'cairo' found
-- Checking for module 'poppler-glib'
-- No package 'poppler-glib' found
-- Checking for module 'librsvg-2.0>=2.35'
--
-- Checking for module 'cairo'
-- No package 'cairo' found
-- Checking for module 'gtk+-2.0'
-- No package 'gtk+-2.0' found
-- Checking for module 'gtkglext-x11-1.0'
-- No package 'gtkglext-x11-1.0' found
-- Could NOT find FLTK (missing: FLTK_LIBRARIES FLTK_FLUID_EXECUTABLE)
-- Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS)
-- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
-- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
-- g++ version 5.4.0
-- Configuring done
-- Generating done
這樣,只能挨個自己安裝依賴庫了。
- egl:libgles2-mesa-dev
- freetype:libfreetype6-dev
- jpeg:libjpeg-dev
- fltk:fltk1.3-dev
- curl:libopenssl-dev
- gstreamer:libgstreamer-plugins-base1.0-dev
- gdal:libgdal-dev
- sdl2:libsdl2-dev
- sdl:libsdl1.2-dev
- wxWidget:libwxgtk3.0-dev
- tiff:libtiff-dev
執行命令 sudo apt-get install “package” 安裝完上面的第三方庫之後,再執行cmake,就只剩下“cairo”、“gtk”等package找不到的錯誤了。
Reference
[1].Quick steps for OpenSceneGraph installation on Linux
[2].openscenegraph-on-linux
[3]openscenegraph dependencies
[4].Ubuntu下安裝OSG