随意吧 發表於 2023-10-20 13:33:00

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

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


</div>
<div class="cl-preview-section">&nbsp;</div>
<div class="cl-preview-section">
<h1>环境</h1>


</div>
<div class="cl-preview-section">
<ul>
<li>系统版本:银河麒麟桌面操作系统V10(SP1)(注意:不对外提供)</li>
<li>Gcc版本:gcc (Ubuntu 9.3.0-10kylin2) 9.3.0</li>
<li>Qt版本:qt5.12.8</li>
<li>OSG版本:osg3.4.0</li>
<li>Cmake版本:cmake3.16.3</li>


</ul>


</div>
<div class="cl-preview-section">&nbsp;</div>
<div class="cl-preview-section">
<h1>安装Qt</h1>


</div>
<div class="cl-preview-section">
<p>  Qt是基于Qt5.12.8版本的,自行下载linux安装linux版本,参照《[麒麟系统开发笔记(二):国产麒麟系统搭建Qt开发环境安装Qt5.12]》</p>


</div>
<div class="cl-preview-section">&nbsp;</div>
<div class="cl-preview-section">
<h1>OSG开发系列博客</h1>


</div>
<div class="cl-preview-section">
<p>  <br>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052609-1846171568.png"></p>


</div>
<div class="cl-preview-section">&nbsp;</div>
<div class="cl-preview-section">
<h1>说明</h1>


</div>
<div class="cl-preview-section">
<p>  osgQt和移植osgQt过来都是通过QGLWidget渲染,Qt在5.5及以后推荐使用QOpenGLWidget窗口替代QGLWidget,在应用层最大的区别就是在QGLWidget上放置控件是无法半透明的,而在QOpenGLWidget上放置控件是可以透明的。<br>  当然,使用QOpenGLWidget实现,需要自行研究,之前是研究过一边并且实现了,研究差不多一周才终于实现基础Demo。<br>  具体这部分代码在博文《》<br>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052760-1843719782.png"><br>  右下的控件实际上是Qt的控件,这样开发可以节省一些hud控件开发,提高效率。</p>


</div>
<div class="cl-preview-section">&nbsp;</div>
<div class="cl-preview-section">
<h1>OSG编译</h1>


</div>
<div class="cl-preview-section">
<h2>步骤一:准备源码</h2>


</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052544-1388147510.png"></p>


</div>
<div class="cl-preview-section">
<h2>步骤二:安装cmake和cmake-gui</h2>


</div>
<div class="cl-preview-section">
<p>  自带了cmake,确认cmake版本:<br>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052668-902014935.png"></p>


</div>
<div class="cl-preview-section">
<p>  安装cmake-gui</p>


</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell"><span class="token function">sudo <span class="token function">make <span class="token function">install cmake-gui
</span></span></span></code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052583-1752179789.png"></p>
</div>
<div class="cl-preview-section">
<p>  运行:</p>
</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell">cmake-gui
</code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052711-1345671851.png"></p>
</div>
<div class="cl-preview-section">
<h2>步骤三:使用cmake配置目标工程</h2>
</div>
<div class="cl-preview-section">
<p>  先解压osg,然后打开cmake的界面:</p>
</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell">cmake-gui
</code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052680-68593304.png"></p>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052579-951063177.png"></p>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052615-134960725.png"></p>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052699-634148658.png"></p>
</div>
<div class="cl-preview-section">
<p>  是没有找到opengl,笔者这个麒麟版本特殊,无法在线安装,联系厂家更新安装的方式:</p>
</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell"><span class="token builtin class-name">cd /etc/apt
<span class="token function">sudo <span class="token function">cp sources.list sources.list.bak
<span class="token function">sudo <span class="token function">vi sources.list
</span></span></span></span></span></code></pre>
</div>
<div class="cl-preview-section">
<p>  修改:</p>
</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell">deb http://archive.kylinos.cn/kylin/KYLIN-ALL <span class="token number">10.1-hwe   main
</span></code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052674-1392541892.png"></p>
</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell"><span class="token function">sudo <span class="token function">apt-get update
<span class="token function">sudo <span class="token function">apt-get <span class="token function">install libgl1-mesa-dev
</span></span></span></span></span></code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052530-356297383.png"></p>
</div>
<div class="cl-preview-section">
<p>  安装完opengl后,在cmake-gui的配置,配置成功:<br>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052577-1741531151.png"></p>


</div>
<div class="cl-preview-section">
<p>  (PS1:那些额外的库,都需要编译然后添加进cmake环境变量,此处先不管,优先编译去osg,能跑,库实在太多)<br>  修改安装路径,避免直接安装到系统):<br>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052721-1684195766.png"></p>


</div>
<div class="cl-preview-section">
<h2>步骤四:生成工程</h2>


</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052674-291919657.png"></p>


</div>
<div class="cl-preview-section">
<h2>步骤五:终端编译</h2>


</div>
<div class="cl-preview-section">
<p>  打开终端,切换至build目录:</p>


</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell"><span class="token builtin class-name">cd /home/yang/work/src/OpenSceneGraph-OpenSceneGraph-3.4.0/build-kylinV10
</span></code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052554-283597115.png"></p>
</div>
<div class="cl-preview-section">
<p>  开始make:</p>
</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell"><span class="token function">make <span class="token parameter variable">-j8
</span></span></code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052589-1194765477.png"></p>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052696-1411659646.png"></p>
</div>
<div class="cl-preview-section">
<p>  在来一次make,确认每个线程都过了。</p>
</div>
<div class="cl-preview-section">
<h2>步骤六:安装</h2>
</div>
<div class="cl-preview-section">
<p>  安装到我们之前设置的路径,这样可以完整的提取头文件和库</p>
</div>
<div class="cl-preview-section">
<pre><code class="prism language-shell"><span class="token function">make <span class="token function">install
</span></span></code></pre>
</div>
<div class="cl-preview-section">
<p>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052716-1424712101.png"></p>
</div>
<div class="cl-preview-section">
<p>  至此编译好了。</p>
</div>
<div class="cl-preview-section">&nbsp;</div>
<div class="cl-preview-section">
<h1>迁移之前的三维文字查看工具</h1>
</div>
<div class="cl-preview-section">
<p>  《[项目实战:Qt+OSG三维2D文字实时效果查看工具](》<br>  <img src="https://img2023.cnblogs.com/blog/1971530/202310/1971530-20231020133052572-1075026521.png"><br>  (PS:没有显示汉字是因为没有打字体库进去)。</p>


</div><br><br>
来源:https://www.cnblogs.com/qq21497936/p/17776862.html
頁: [1]
查看完整版本: 麒麟系统开发笔记(十三):在国产麒麟系统上编译OSG库、搭建基础开发环境和移植测试Demo