在Linux下編譯osg與osgEarth
OSG、osgEarth是三維仿真領域經常用的開源引擎。由于Linux使用有一定的門檻,并且編譯OSG和osgEarth需要使用到各種各樣的庫,這導致Linux下開發效率很低。
隨著國產化操作系統的推廣,越來越多的人開始接觸并使用國產操作系統進行三維開發,本文以銀河麒麟OS為例,編譯OSG與osgEarth,具體編譯步驟:
第
1
篇
- 前期準備 -
A.下載
官網下載適配自己機型的NVIDIA驅動程序;
B.禁用nouveau
#vim/lib/modprobe.d/blacklist_linux_4.4.0-21-generic.conf
在末尾追加“blacklist nouveau”;
驗證nouveau是否已經禁用:
#lsmod|grep nouveau
沒有信息顯示,說明nouveau已經被禁用了。
C.使用多用戶模式并重新啟動
#systemctl set-default multi-user.target
#reboot
第
2
篇
- 安裝測試 -
A.安裝NVIDIA驅動
#chmod +x NVIDIA-linux-x86_64-378.13.run
#./ NVIDIA-linux-x86_64-378.13.run
安裝最后一步沒有提示安裝成功,而是提示“Error:Unable to load the ‘nvidia-drm’ kernel module”,這個問題的解決方法就是在BIOS中關閉SECURITY BOOT選項。
B.驅動安裝成功后切換到圖形模式重新啟動
#systemctl set-default graphical.target
#reboot
C.測試NVIDIA驅動程序是否安裝成功
#nvidia-installer –v | grep version
顯卡驅動安裝成功后,就可以正式開始進行Linux下OSG和osgEarth的編譯了。
第
3
篇
- 編譯 -
A.如何編譯第三方依賴庫?
下滑顯示更多
B.如何編譯OSG?
1) 使用cmake打開OSG源碼下的CMakeLists.txt并選擇構建路徑;
2) 使用cmake配置OSG編譯環境,檢查配置curl、freetype、gdal、jpeg、png、tiff、zlib和配置QT項;
3) OSG環境配置成功后執行Configure和Generate;
4) 終端進入OSG構建目錄下執行:$make –j8;
5) 編譯成功后執行安裝命令:$sudo make install;
6) 使用root用戶權限將動態鏈接庫加載到內存;
#touch/etc/ld.so.conf.d/mylib.conf #echo"/usr/local/lib64">>/etc/ld.so.conf.d/mylib.conf #echo "/usr/local/lib" >> /etc/ld.so.conf.d/mylib.conf
#ldconfig
7) 測試OSG:$osgversion。
C.如何編譯osgEarth?
1) 使用cmake打開osgEarth源碼下的CMakeLists.txt并選擇構建路徑;
2) 檢查配置curl、gdal、geos、zlib以及所有Qt庫和所有osg庫;
3) osgEarth環境配置成功后執行Configure和Generate;
4) 終端進入osgEarth構建目錄下執行:$make –j8;
5) 編譯成功后執行安裝命令:$sudo make install;
6) 將動態鏈接庫加載到內存:$ sudo ldconfig;
7) 測試osgEarth:$osgearth_version。
注:技術人員已將三方庫編譯資料進行了整理,如有需要請進入FreeX公眾號,回復關鍵字“三方庫”獲得資源呦~