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比较适中。
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”

完成后执行 source ~/.bashrc 命令让环境命令生效。

三、测试

用命令: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

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

Deepin Linux 下 OSG 安装相关推荐

  1. deepin linux下python安装mysqldb

    ` sudo pip search MySQL-python ` 转载于:https://www.cnblogs.com/jiftle/p/7190478.html

  2. 打造前端 Deepin Linux 工作环境——安装系统

    打造前端 Deepin Linux 工作环境--安装系统 为什么选择 Deepin Linux 系统 在 linux 操作系统的选择上,我个人不喜欢太花里胡哨的东西.曾经一度认为 linux 系统只应 ...

  3. 【转】deepin Linux下Picked up _JAVA_OPTIONS错误

    转自百度经验 在deepin linux下安装JDK,编译.执行java程序时出现Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=gasp ...

  4. 打造前端 Deepin Linux 工作环境——安装配置 atom 编辑器

    打造前端 Deepin Linux 工作环境--安装配置 atom 编辑器 好,我个人推荐大家使用 atom 编辑器,第一是免费,第二是好看,第三是好用. 安装 atom 编辑器 我们输入 apt-c ...

  5. deepin/linux下svn客户端工具

    我的博客 deepin/linux下svn客户端工具 尝试过几款linux下svn的客户端例如RapidSVN,这个工具在添加svn仓库的时候总是会卡,总之用起来不太舒服,皇天不负有心人终于找了了另外 ...

  6. Deepin Linux下阿里旺旺的更新

    Deepin Linux商店中的阿里旺旺版本太低,安装后总是提醒要升级,但是大家知道的,不可能升级成功.        琢磨后,得到一个简单粗暴的方式.        先在Deepin Linux下安 ...

  7. mysql在linux下的安装

    mysql在linux下的安装 安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads ...

  8. linux 保存编译log,(转)Linux下编译安装log4cxx

    一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. 第一步安装apr-1.3.8,顺序不能错,它必须首 ...

  9. liunx tar安装mysql_在Linux下,安装Mysql(tar)

    在Linux下,安装Mysql(tar) # cd /home/tmp (进入压缩包所在目录) # groupadd mysql (建立mysql组) # useradd -g mysql mysql ...

最新文章

  1. 基于kafka_2.11-2.1.0实现的生产者和消费者代码样例
  2. tomcat quartz 被触发两次
  3. access游戏库不显示 ea_英伟达上线云游戏服务 千款游戏月费4.99美元
  4. 【渝粤教育】国家开放大学2018年秋季 0109-21T公司财务 参考试题
  5. Nginx (LNMP+https)
  6. 【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern
  7. java 多线程下载文件
  8. 安卓模拟器切换横屏之后怎么返回竖屏
  9. ScrollView嵌套ListView只显示一行
  10. Postfix+Mysql+Apache+Dovecot+Thunderbird+Extmail+E
  11. 20191130_C6H6(GT)预测
  12. Linux硬件IO的优化简介
  13. db_cxx.h: No such file or directory
  14. Maven基础篇之Maven实战入门-最新IDEA版maven
  15. mysql最左前缀原则学习笔记,in也可以走索引
  16. 汽车CAN总线数据帧分类及格式详解
  17. 冷冻莴苣的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. The Humble Programmer
  19. 设计模式原则——SOLID
  20. chrome插件draw.io代替visio成为流程图架构图制作新的利器

热门文章

  1. 计算机科学与技术中文核心期刊
  2. 钻石图案JAVA语言
  3. python爬虫抓取头条街拍美女图片
  4. 华为系统是计算机类型吗,华为Mate10秒变PC能否开启手机取代PC时代
  5. 中恒BM工作组依据技术专业机电二次深化设计的专业技能和优点
  6. Linux常用工具大全
  7. 树或者二叉树的度怎么算??
  8. BYOD策略的制定关乎企业网络安全
  9. 手把手教你写JQuery之添加一些方法 5
  10. c语言 log4c,LOG4C 的使用