威尼斯wns·8885556(vns认证网站)-BinG百科

当前位置:首页 > 新闻资讯 > 技术动向

在Linux下编译osg与osgEarth

发布者:威尼斯wns·8885556    时间:2020-10-23 14:02:02

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.如何编译第三方依赖库?

1) 编译 zlib

$cd zlib-1.2.8
$./configure --prefix=/usr/local
$make
$sudo make install

2) 编译 png
$cd libpng-1.2.40
$./configure --prefix=/usr/local
$make
$sudo make install

3) 编译 curl
$cd curl-7.47.0
$./configure --prefix=/usr/local
$make
$sudo make install

4) 编译 freetype
$cd freetype-2.4.8
$./configure --prefix=/usr/local
$make
$sudo make install

5) 编译 gdal
$cd proj-4.9.2
$./configure --prefix=/usr/local
$make
$sudo make install
$cd geos-3.5.0
$./configure --prefix=/usr/local
$make
$sudo make install
$cd gdal-1.11.3
$./configure --prefix=/usr/local
$make
$sudo make install

6) 编译 jpeg
$cd nasm-2.12.02
$./configure --prefix=/usr/local
$make
$sudo make install
$cd libjpeg-turbo-1.2.1
$./configure --prefix=/usr/local
$make
$sudo make install

7) 编译 tiff
$cd tiff-3.8.2
$./configure --prefix=/usr/local
$make
$sudo make install

8) 安装Qt

$chmod +x qt-opensource-linux-x64-5.5.1.run

下滑显示更多


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公众号,回复关键字“三方库”获得资源呦~

FreeX 产品微信公众号

威尼斯wns·8885556微信公众号

威尼斯wns·8885556视频号