Deepin Linux 下 OSG 安装

Deepin Linux 下 OSG 安装

**

前言:

**
女人天生就比男人情商高,男程序员情商更低,只能在东北玩泥巴。有一个好玩的泥巴OSG,它是开源跨平台的三维实时场景图开发引擎,被广泛应用在可视化(飞行、船舶、车辆、工艺等仿真)、增强现实以及医药、教育、游戏等领域。
可是网上的安装教程大都是windows的,把大厦建立在别人的沙滩上,呵呵。支持国产,在Deepin Linux 15.8下测试成功。

一、下载

禅师说:多则惑,少则明。一般情况下,学习和研究不一定要用最新版本, 因为新版本庞大、特性多。因此我选择了稍旧的版本3.4数据, 需要翻_墙才能下载。
在这里插入图片描述

二、编译

Osg用cmake辅助编译,要求cmake版本>2.8, 可以用命令看下

cmake --version

在这里插入图片描述
把源码OpenSceneGraph-master.zip 解压,然后执行如下命令

cd OpenSceneGraph-master
mkdir build
cd build
cmake ..

禅师说:挫折不断是常态,一帆风顺是变态。
完成后,后提示缺少一些库如下:
在这里插入图片描述
怎么办?这么多配件缺少!!
禅师又说:山无常势,水无常形,遇事绕着走即可。
这些配件都是可选的,你不用可以不管它,比如SDL。而有的库最好安装一下,比如FreeType才能正常显示中文,PNG才能支持png图片等。
网上有第三方库,但是都是针对windows下VS的,啊呸!!!官网说在Linux下可以用如下命令解决

 apt-get install openscenegraph

但实际上会出现源错误而无法进行。所以终极大法只有:手动挨个安装:

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
接下来就开始编译, 有个坑:
   只用make 速度慢,用make -j速度快,但会导致占用最多的资源,表现为硬盘卡死,反而更慢,而适当的参数, 如 -j4比较适中。
如果失败后重新编译,需要删除build目录下所有文件,再 cmake .. 和 make -j4
make -j4
sudo make install

添加环境变量
,在 ~/.bashrc文件最后添加如下内容,具体地址要根据你的osg放置的地方和osg数据放置的位置来确定:

export PATH=${PATH}:/你的osg目录/bin”
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:你的osg目录/lib”
export OSG_FILE_PATH=“你的数据目录/OpenSceneGraph-Data:你的数据目录/OpenSceneGraph-Data/Images”

如果 make install 已经正确copy了bin和lib到 /usr/local/下则:

export PATH=$PATH:/usr/local/bin”
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib”
export OSG_FILE_PATH=“我的数据目录/OpenSceneGraph-Data:我的数据目录/OpenSceneGraph-Data/Images”

注意: = 和:前后不能有空格, 路径要用绝对路径,不能有~
完成后执行 source ~/.bashrc 命令让环境命令生效。
echo $LD_LIBRARY_PATH 可以查看是否生效。

三、测试

用命令:osgviewer cow.osg 就可以看到牛牛啦1
在这里插入图片描述
可以用F, L等命令,用鼠标搬弄一下牛牛,哈哈哈!

到此,是时候提升级别啦!编译自己的代码:

#include<osgDB/ReadFile>
#include<osgViewer/Viewer>
int main()
{
	osgViewer::Viewer viewer;
	viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
	viewer.realize();
	viewer.run();
	return 0;
}

大道至简,能验证OSG编程,代码越少越好!

g++ t1.cpp  -losgDB -losgViewer

注意: -losgDB -losgViewer 库缺少,会出现
“无法添加符号: DSO missing from command line” 错误
在这里插入图片描述
编译成功后,执行 ./a.out, 飞机模型出现啦!
在这里插入图片描述

四、自带案例

案例源码在/examples下,但安装时能自动编译成功的案例都放在 /build/bin路径下。有的案例无法编译成功,因为缺少第三方库,或者第三方库版本问题导致编译参数变化,此时需要找到原因并手动补全编译参数。例如,我安装了Fltk,但 /examples/osgviewerFLTK就死活编译失败,经历千辛万苦,最后用如下指令编译成功:

 g++  osgviewerFLTK.cpp   
 -I/usr/local/include 
 -I/usr/local/include/FL/images 
 -I/usr/local/include/freetype2 
 -I/usr/include/uuid 
 -I/usr/include/libpng16 
 -D_LARGEFILE_SOURCE 
 -D_LARGEFILE64_SOURCE 
 -D_THREAD_SAFE 
 -D_REENTRANT /usr/local/lib/libfltk.a 
 -L /usr/local/lib/ 
 -lXrender -lXcursor -lXfixes -lXext -lXft 
 -lfontconfig -lXinerama -lpthread -ldl -lm -lX11 
 -lfltk_gl -lGL -lOpenThreads -losgDB -losgText 
 -losgUtil -losg -losgViewer -losgGA 
 -losgManipulator -losgVolume -losgSim

哈哈,是不是有点复杂,不过只要你像天狗一样孜孜不倦地追求,软件总是会回应你想要的结果。
 对了,禅师好像又说:用恋爱脑来对付事业,用事业脑对付对象!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值