【从零搭建Osgearth】02. 麒麟v4.x(linux+arm64架构)编译安装Cmake+Qt5.12.8+Osg+Osgearth

概述

  1. 第一篇博客完成了初期cmake工程的搭建,但移植到麒麟(linux+arm64)环境下仍然存在很多问题,由于项目需要在离线环境下实现全部编译、安装、开发工作,而麒麟环境简直是坑中之坑,有的没的问题遇到了一大堆,因此本博客对安装的整个流程进行总结,如果能帮到别人将不胜荣幸。
  2. 本博客全部安装方式都是“源码编译”+“安装”方式,这是由本项目离线开发的特殊环境决定的,如果你的linux环境可以直接apt-install,那就无须进行如此繁琐的步骤,可以关掉本博客了。
  3. 注意,本篇博客可以结合第三篇博客共同阅读,第三篇博客专门总结安装过程中的一些深坑问题。

1. CMake编译安装

Cmake按照项目需求安装对应版本,这里注意要对照项目库的需要安装版本,否则可能出现问题。CMake的安装需要bison、flex两个前置依赖。

安装bison

bison源码下载地址:

http://mirrors.ustc.edu.cn/gnu/bison/

tar -zxvf bison-3.5.tar.gz
cd bison-3.x
./configure
make
make install

这里可以看出linux环境下安装配置依赖库的通用步骤,总结如下:
1. tar -zxvf xxx.tar.gz

  • 这一步完成了对源码压缩包的解压,
  • -x: 从压缩的文件中提取文件,-z: 支持gzip解压文件,-v: 显示操作过程;
  • 如果要打包,则是 -cf即可;

2. ./configure --prefix=/yourPath/build

  • 对于下载的源码,一般来说有两种形式:如果包含“Configure”文件,则通过命令行执行“./configure”命令,配置相关内容;如果包含的是“CMakeLists.txt”文件,则通过CMake完成相关配置工作(当然,我们现在还没装CMake呢~);
  • “–prefix”指定了后续编译安装时的存放目录,一般来说在源码目录下新建build文件夹用于存放,后续将lib库等内容拷贝在需要位置即可;
    make && sudo make install
  • 这一步是常规的编译安装步骤了,之后会大量接触。

安装flex

flex源码下载地址:

https://github.com/westes/flex/

安装方式同上,如果有依赖缺失的报错,则查找相应依赖库安装即可。

安装CMake和CMake-Gui

CMake源码下载地址:

https://cmake.org/

一般来说,CMake依赖的C和C++编译器环境应该是系统本身就有的,在/usr/bin目录下可以查找到。如果没有的话,则按照需要下载安装即可。

# 解压
tar -zxvf cmake-3.25.1.tar.gz
cd cmake-3.25.1
# 编译
./configure --qt-gui
make -j4
sudo make install
  • make -j4 是根据你的CPU内核数设置的,同时编译可以提高CPU使用效率。
  • –qt-gui表示同时安装Gui,建议添加Gui界面,安装好后可以在bin目录下找到gui可执行程序。

Qt源码编译安装

第二步是在Linux环境下安装Qt,笔者项目需要的是5.12.8版本,下面以此为例,介绍步骤:
qt-5.12.8源码下载地址:

https://download.qt.io/archive/qt/5.12/5.12.8/

由于第一步已经安装了flex和bison的依赖,这里不需要再安装了,如果第一步没有安装成功,qt编译时可能会出现报错。
安装流程和之前一样,需要注意几点:

  1. make和make install的时间都很久,特别是make,需要耐心等待;
  2. 需要注意,在配置时千万不要配置成静态库(.a)编译安装,除非你的项目确实需要链接.a库。这是因为静态库在项目开发过程中,比起.so需要链接更多的额外库,导致很多不可预知的报错。例如DSO相关的报错。
  3. 安装完成后,需要配置环境变量,流程是:
# 解压
export QTDIR=/opt/qt-5.12.8
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
source /etc/profile

一般来说,QT的相关目录是放在/opt/下的,这里按照你的安装目录配置即可。

  1. 查看安装情况和修改Qt默认版本号
qmake --version

上述命令可以查看Qt版本号。

qtchooser -l

上述命令可以查看已有Qt版本。

qtchooser -install qt5.12.8 /opt/Qt5.12.8/bin/qmake
export QT_SELECT = qt5.12.8 //这里设置上一步你起的名字

完成后,再输入qtchooser -l,可以查看是否已经安装成了你安装的版本。

安装OSG

关于OSG的安装方法,可以参考Osgearth官方中文论坛“恒歌科技”,链接如下:

https://www.henggetec.com/?mod=news_detail&id=32

编译OSG流程如下:

  1. 使用cmake打开OSG源码下的CMakeLists.txt并选择构建路径;
  2. 使用cmake配置OSG编译环境,检查配置curl、freetype、gdal、jpeg、png、tiff、zlib和配置QT项;
  3. OSG环境配置成功后执行Configure和Generate;
  4. 终端进入OSG构建目录下执行:$make –j8;
  5. 编译成功后执行安装命令:$sudo make install;
  6. 使用root用户权限将动态链接库加载到内存;
    #touch/etc/ld.so.conf.d/mylib.conf #echo"/usr/local/lib64">>/etc/ld.so.conf.d/mylib.conf
    #echo “/usr/local/lib” >> /etc/ld.so.conf.d/mylib.conf
    #ldconfig
  7. 测试OSG:$osgversion。

注意要点:

  1. 严格按照官方中文网站提供的安装流程安装依赖库,安装顺序也尽量保持一致,这样可以节省大量时间、避免不必要的报错。否则一定会走很多弯路!相信我!
  2. 相关依赖库的源码下载链接如下,这里做了完整整理,造福大众,源码具备跨平台、跨版本特性,因此避免所有因为版本不对导致的不必要报错。

编译Osgearth

同理按照上一步链接的教程安装Osgearth,这里要注意:

  • 利用Cmake-Gui打开CmakeLists.txt,需要将各种依赖库路径,例如OSG、QT、OpenGL等,指定为先前安装的路径。
  • 成功后运行osgearth_viewer /yourPath/feature_geom.earth如果能成功看到地球文件,则编译成功。

总结

麒麟环境下对Osgearth的配置是比较繁琐、耗时的,编译过程中可能会遇到各种奇奇怪怪的问题。下一篇博客将专门总结安装过程中的各种error,避免踩坑、节省大家时间。

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值