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

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

时间:2023-10-20 13:45:10浏览次数:45  
标签:cmake Qt Demo 麒麟 编译 安装 OSG

前言

  在国产麒麟系统上实现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:没有显示汉字是因为没有打字体库进去)。

标签:cmake,Qt,Demo,麒麟,编译,安装,OSG
From: https://www.cnblogs.com/qq21497936/p/17776862.html

相关文章

  • 安装arm银河麒麟及Qt5.12.1
    一、安装银河麒麟虚拟机:qemu虚拟机安装银河麒麟V10arm架构系统桌面版_陆星材的博客-CSDN博客安装完(试用版)之后,点击桌面的“安装Kylin”图标,安装银河麒麟系统。将命令后面的“,drive=cdrom”删掉。执行即可打开麒麟系统。二、编译Qt5.12.1源码:教程1银河麒麟V10+飞腾CPU......
  • Struct IfDemo02
    packagecom.chen.struct;importjava.util.Scanner;publicclassIfDemo02{publicstaticvoidmain(String[]args){//考试分数大于60分就是及格,小于60分就是不及格。Scannerscanner=newScanner(System.in);System.out.println("请输入成......
  • Struct SwitchDemo01
    packagecom.chen.struct;importjava.util.Scanner;publicclassSwitchDemo01{publicstaticvoidmain(String[]args){//case穿透//switch匹配一个具体的值chargrade='C';switch(grade){case'A':......
  • Struct SequenceDemo01
    packagecom.chen.struct;publicclassSequenceDemo01{publicstaticvoidmain(String[]args){System.out.println("hello1");System.out.println("hello2");System.out.println("hello3");System.o......
  • Struct IfDemo03
    packagecom.chen.struct;importjava.util.Scanner;publicclassIfDemo03{publicstaticvoidmain(String[]args){//考试分数大于60分就是及格,小于60分就是不及格。Scannerscanner=newScanner(System.in);System.out.println("请输入成......
  • Struct SwitchDemo02
    packagecom.chen.struct;publicclassSwitchDemo02{publicstaticvoidmain(String[]args){Stringname="种崎敦美";//JDK7的新特性,表达式结果可以是字符串!!!//字符的本质还是数字//反编译Java----class(字节码文件)-----反编译(ID......
  • Struct WhileDemo03
    packagecom.chen.struct;publicclassWhileDemo03{publicstaticvoidmain(String[]args){//计算1+2+3...+100=?//高斯的故事inti=0;intsum=0;while(i<=100){sum=sum+i;i++;}......
  • Struct DoWhileDemo02
    packagecom.chen.struct;publicclassDoWhileDemo02{publicstaticvoidmain(String[]args){inta=0;while(a<0){System.out.println(a);a++;}System.out.println("==============");......
  • Struct DoWhileDemo01
    packagecom.chen.struct;publicclassDoWhileDemo01{publicstaticvoidmain(String[]args){inti=0;intsum=0;do{sum=sum+i;i++;}while(i<=100);System.out.println(sum);}}......
  • 统信UOS或麒麟KYLINOS上无交互安装deb
    往期文章:统信UOS1060上通过Fail2Ban来BanIPhello,大家好啊,今天给大家带来一篇在统信UOS或者麒麟KYLINOS上无交互安装deb的文章,有时候我们使用dpkg安装deb时,由于软件包中preinst设置的内容,需要我们手动输入相关的参数,比如路径等,那么今天就给大家提供两种方法参考,请根据实际的情况......