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

news2024/12/23 5:17:50

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133943583

红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

国产麒麟系统相关开发

上一篇:《麒麟系统开发笔记(十二):在国产麒麟系统上编译GDAL库、搭建基础开发环境和基础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编译

步骤一:准备源码

  在这里插入图片描述
osg3.4.0:https://download.csdn.net/download/qq21497936/11259525
   在这里插入图片描述

  因为之前做过osg深入 开发,这些用到的库都已经有了,在此输出下载网站,自行下载:
  freetType2 官网地址:https://www.freetype.org/download.html
  jpeg官网地址:http://www.ijg.org
  zlib官网地址:http://www.zlib.net
  png官网地址:https://libpng.sourceforge.io
  tiff官网地址:http://download.osgeo.org/libtiff
  openjpeg2官网地址:http://www.openjpeg.org
  curl官网地址:https://curl.haxx.se/download.html
  lcms官网地址:https://sourceforge.net/projects/lcms/files/latest/download

步骤二:安装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:没有显示汉字是因为没有打字体库进去)。


上一篇:《麒麟系统开发笔记(十二):在国产麒麟系统上编译GDAL库、搭建基础开发环境和基础Demo》
下一篇:敬请期待…


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133943583

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1113777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mybatis自定义类型控制器(TypeHandler)处理将字符串处理为集合

1. 问题: 假设这么一个场景 localurl里面的值大概这样:dwad21.jpg,dwad22.jpg,dwad.23.jpg 是一个字符串 如果我在sql表中有一个字段(local_url)是本地图片资源的多个url字符串拼接值。我想在java后端中不进行额外的转换就取值加…

华硕灵耀X双屏pro(UX8402Z)原装Windows11系统恢复安装方法及其教程

华硕灵耀X双屏pro(UX8402Z)原装Windows11系统恢复安装方法及其教程 第一步:自备原装系统swm/esd/wim/iso等用PE安装还原的系统文件,或者拥有或者售后zip工厂恢复安装包(6个底包:EDN.KIT.OFS.HDI.SWP.TLK&a…

【LeetCode:86. 分隔链表 | 链表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

2023年中国档案信息化发展历程、竞争格局及行业市场规模分析[图]

档案信息化是以网络、计算机、信息技术为手段,以档案资源为对象,以档案工作为依托,以档案管理学最新理论为指导,按照信息社会和国家档案行政管理部门的要求、开展档案的收集、整理、保管、开发和利用的现代化管理过程。 档案信息化…

Node.js、Vue的安装与使用(Linux OS)

Vue的安装与使用(Linux OS) Node.js的安装Vue的安装Vue的使用 操作系统:Ubuntu 20.04 LTS Node.js的安装 安装Node.js Node.js官方下载地址 1.选择合适的系统架构(可通过uname -m查看)版本安装 2.下载文件为tar.xz格…

1 如何入门TensorFlow

近年来人工智能的火爆吸引了很多人,网上相关的热门课程报名的人很多,但是坚持下去的人却少。那些晦涩的原理没有一定知识的积累很难能理解。 如果你对人工智能感兴趣,且想利用人工智能去实现某项功能,而不是对人工智能本身感兴趣&…

Vue3 + Echarts(5.x) 实现中国地图

Echarts展示地图 效果图 安装 npm install echarts默认安装的是 5.x 版本 在这个版本中的引入方式必须是下面这种方法 import * as echarts from echarts源码 在echarts5.x版本中,已经不再提供地图数据,所以需要我们自己手动下载,我这里…

Qt扫盲-QTextCodec理论总结

QTextCodec理论总结 一、概述二、编码支持三、使用四、创建自己的编解码器类 一、概述 QTextCodec 是Qt提供的一个管理字符串编码的功能,他可以在不同编码方式中来回转换,在文件读取的时候、格式编码转换的时候用处很大。Qt使用Unicode 编码来存储、绘制…

探索未来的视觉革命:卷积神经网络的崭新时代(一)

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

【圆满落幕】IDCF社区天津理工大学华信软件学院校友会技术沙龙丨IDCF

金秋十月的校园既充满活力又不失庄重,既富有学术气息又不失生活情趣,这里是学生们求学、成长和发展的小天地,洋溢着青春的活力和积极向上的氛围。由IDCF社区&天津理工大学华信软件学院联合举办的校友会技术沙龙活动在这里圆满举行——让技…

Kotlin 知识点小结

一.Kotlin 协程启动方式总结 1.withContext 同步串行 带返回 2.launch 异步 不带返回 3.asyc 异步 带返回 4.runblocking 同步 带返回 二.作用域函数 ,T的扩展函数 (with不是T的扩展函数)都是内联函数 Kotlin中的lateinit和by lazy有以下…

短视频矩阵系统源码---php搭建

一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统,目前是全国源头独立开发),开发功能大拆解分享,功能大拆解: (1)数据概览&#x…

【LeetCode力扣】86. 分隔链表

目录 1、题目介绍 2、解题思路 2.1、双链表双指针 2.2、代码描述 1、题目介绍 原题链接:86. 分隔链表 - 力扣(LeetCode) 示例 1: 输入:head [1,4,3,2,5,2], x 3 输出:[1,2,2,4,3,5] 示例 2&#xff…

2048天创作纪念日

2048天创作纪念日 初心收获日常成就憧憬 初心 大一的时候,老师上课说可以通过浏览他人博客或者自己写博客来学习编程。从那以后,写博客这件事情就埋在了我心里,但是我一直没有什么内容想写。直到入选了ACM校队后,需要经常做大量的…

【算法|动态规划No.24】leetcode LCR 093. 最长的斐波那契子序列的长度

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

wireshark抓包解密TLS,解决个人环境看不到明文流量

wireshark抓包浏览器流量 https://monkeywie.cn/2020/08/07/wireshark-capture-https/ 解密TLS流量 按照上面的步骤抓到流量后,正常是可以看到明文数据,但在我的wireshark上一直看不到。因为有其它替代方案(在反向代理后面抓包、fiddler&a…

2023下半年信息系统集成设计师选择题

选择题 第一章 信息基础知识第二章 信息系统集成第三章 专业技能知识第四章 项目管理一般知识第五章 项目立项管理第六章 项目整体管理第七章 项目范围管理第八章 项目进度管理第九章 项目成本管理第十章 项目质量管理第十一章 项目管理干系人第十三章 合同管理第十五章 配置管…

springBoot整合讯飞星火认知大模型

1.概述 讯飞星火大模型是科大讯飞最近开放的拥有跨领域的知识和语言理解能力的大模型,能够完成问答对话和文学创作等。由于讯飞星火大模型最近可以免费试用,开发者都可以免费申请一个QPS不超过2的账号,用来实现对平台能力的验证。本文将利用…

好物周刊#27:音乐助手

https://github.com/cunyu1943/JavaPark https://yuque.com/cunyu1943 村雨遥的好物周刊,记录每周看到的有价值的信息,主要针对计算机领域,每周五发布。 一、项目 1. lamp 快速开发平台 lamp-cloud 基于 Jdk11 SpringCloud SpringBoot …

【LeetCode】101. 对称二叉树

101. 对称二叉树(简单) 方法:递归 思路 两个树互为镜像的条件: 它们的两个根结点具有相同的值。每个树的右子树都与另一个树的左子树镜像对称。 因此,我们需要递归比较左子树和右子树,将根节点的左子树记…