麒麟系统开发笔记(十三):在国产麒麟系统上编译OSG库、搭建基础开发环境和移植测试Demo

前言

  在国产麒麟系统上实现 C++ 三维仿真,使用 OSG 技术,其他基于 web 的技术也是可以但是交互上鼠标拽托等交互相对差一些,所以这块需要斟酌选择到底是何种技术来取舍。
  本篇在厂家指定的麒麟系统上编译 OSG。

 

环境

  • 系统版本:银河麒麟桌面操作系统 V10(SP1)(注意:不对外提供)
  • Gcc 版本:gcc (Ubuntu 9.3.0-10kylin2) 9.3.0
  • Qt 版本:qt5.12.8
  • OSG 版本:osg3.4.0
  • Cmake 版本:cmake3.16.3
 

安装 Qt

  Qt 是基于 Qt5.12.8 版本的,自行下载 linux 安装 linux 版本,参照《[麒麟系统开发笔记(二):国产麒麟系统搭建 Qt 开发环境安装 Qt5.12]》

 

OSG 开发系列博客

  [OSG、OSGEARTH 三维开发专栏]
  在这里插入图片描述

 

说明

  osgQt 和移植 osgQt 过来都是通过 QGLWidget 渲染,Qt 在 5.5 及以后推荐使用 QOpenGLWidget 窗口替代 QGLWidget,在应用层最大的区别就是在 QGLWidget 上放置控件是无法半透明的,而在 QOpenGLWidget 上放置控件是可以透明的。
  当然,使用 QOpenGLWidget 实现,需要自行研究,之前是研究过一边并且实现了,研究差不多一周才终于实现基础 Demo。
  具体这部分代码在博文《[OSG 开发笔记(二十三):Qt 使用 QOpenGLWidget 渲染 OSG 和地球仪]》
  在这里插入图片描述
  右下的控件实际上是 Qt 的控件,这样开发可以节省一些 hud 控件开发,提高效率。

 

OSG 编译

步骤一:准备源码

  在这里插入图片描述

步骤二:安装 cmake 和 cmake-gui

  自带了 cmake,确认 cmake 版本:
  在这里插入图片描述

  安装 cmake-gui

sudo make install cmake-gui

  在这里插入图片描述

  运行:

cmake-gui

  在这里插入图片描述

步骤三:使用 cmake 配置目标工程

  先解压 osg,然后打开 cmake 的界面:

cmake-gui

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  是没有找到 opengl,笔者这个麒麟版本特殊,无法在线安装,联系厂家更新安装的方式:

cd /etc/apt
sudo cp sources.list sources.list.bak
sudo vi sources.list

  修改:

deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-hwe   main

  在这里插入图片描述

sudo apt-get update
sudo apt-get install libgl1-mesa-dev

  在这里插入图片描述

  安装完 opengl 后,在 cmake-gui 的配置,配置成功:
  在这里插入图片描述

  (PS1:那些额外的库,都需要编译然后添加进 cmake 环境变量,此处先不管,优先编译去 osg,能跑,库实在太多)
  修改安装路径,避免直接安装到系统):
  在这里插入图片描述

步骤四:生成工程

  在这里插入图片描述

步骤五:终端编译

  打开终端,切换至 build 目录:

cd /home/yang/work/src/OpenSceneGraph-OpenSceneGraph-3.4.0/build-kylinV10

  在这里插入图片描述

  开始 make:

make -j8

  在这里插入图片描述

  在这里插入图片描述

  在来一次 make,确认每个线程都过了。

步骤六:安装

  安装到我们之前设置的路径,这样可以完整的提取头文件和库

make install

  在这里插入图片描述

  至此编译好了。

 

迁移之前的三维文字查看工具

  《[项目实战:Qt+OSG 三维 2D 文字实时效果查看工具](》
  在这里插入图片描述
  (PS:没有显示汉字是因为没有打字体库进去)。