银河麒麟V10 SP1 ARM编译QT源代码

这篇具有很好参考价值的文章主要介绍了银河麒麟V10 SP1 ARM编译QT源代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近因为一些事情需要在银河麒麟ARM系统上[银河麒麟V10 SP1 ARM 2203 linux5.4.96-11]安装QT5.12.4版本,由于QT官方不提供ARM版的安装包,无奈只能自己手动编译源代码。

后续补充:实际上我要装的是Qt5.14.2 而不是 5.12.4,不过同样的环境下Qt5.14.2也编译成功了。


这是一篇个人笔记,对这段时间的工作进行总结,如果能帮到各位那再好不过。鄙人才疏学浅,大佬轻喷。
建议和官方文档一起阅读。
Qt-5构建文档
QtWebEngine/How_to_Try
QtWebEngine Platform Notes


构建

代码路径千万不要有中文
建议阅读完 依赖安装以及报错 再开始构建

执行命令之前先安装这个,在文档中有说明

官方构建文档

sudo apt-get install build-essential libgl1-mesa-dev

确认是否构建QTWebEngine

如果跳过的话,执行这段命令。后面执行make大概在1小时左右(麒麟海思芯片9006c)。

# 路径换成你自己的
./configure -skip webengine --prefix=/home/johnson/Qt5.12.4/

如果选择构建web引擎。时间会很漫长。原因是因为chromium编译很吃内存,swap分区的速度比内存还是慢很多的。

# -webengine-proprietary-codecs: 启用对专有编解码器的支持,支持chromium,可以播放视频
./configure \
	--prefix /home/johnson/Qt5.12.4 \
	-opensource \
	-confirm-license \
	-nomake examples \
	-nomake tests \
	-release \
	-webengine-proprietary-codecs \
	--pcre=qt

开始构建

nproc是获取CPU的线程数,可以多线程构建;如果你还要用电脑干其他活,可以少给几个线程,比如make -j4。

sudo make -j$(nproc)
sudo make install

依赖安装以及报错

特殊情况

有几个需要说明的,不知道是我这个机子的问题还是什么。

  1. 推荐使用 apt-get 而不是 apt,貌似有的依赖包用 apt install 找不到

  2. 我这个系统的 /etc/apt 目录下的sources.list总是莫名其妙自己变成下面这段(有可能是系统没激活的原因),导致apt-get update更新不了,而且找不到依赖。如果你的机子也有这种问题,在后面 apt-get 找不到依赖的时候可以看看sources.list是不是变了。

# 本文件由源管理器管理,会定期检测与修复,请勿修改本文件
deb https://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-wayland-2203-fix-disk main

实际上在系统重装开机过后是这个,备份一下sources.list,然后 chmod 444 sources.list 设置为只读。当然了,我的系统架构和版本和你们都不一定一样,sources.list也有所区别。

deb https://archive.kylinos.cn/kylin/KYLIN-ALL/ 10.1-wayland-2203-updates main universe restricted multiverse
deb https://archive.kylinos.cn/kylin/KYLIN-ALL/ 10.1-kirin9006C-feature main
deb https://archive2.kylinos.cn/deb/kylin/production/PART-10_1-kirin9a0/custom/partner/10_1-kirin9a0 default all

依赖安装

我从官方文档以及查阅各种资源总结的依赖

官方要求

银河麒麟V10 SP1 ARM编译QT源代码,arm开发,qt,kylin

总结合并
  1. 其中 libsrtp0-dev 这个依赖在我平台上升级为了 libsrtp2-dev
sudo apt-get install bison build-essential gperf flex python2 libasound2-dev \
libcups2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev libpulse-dev \
libudev-dev nodejs libxtst-dev gyp ninja-build libssl-dev libxcursor-dev \
libxcomposite-dev libxdamage-dev libxrandr-dev libfontconfig1-dev libxss-dev \
'libsrtp0-dev' libwebp-dev libjsoncpp-dev libopus-dev libminizip-dev libavutil-dev \
libavformat-dev libavcodec-dev libevent-dev libvpx-dev libsnappy-dev libre2-dev \
libprotobuf-dev protobuf-compiler gcc g++ libssl-dev libxcursor-dev libxcomposite-dev \
libxrandr-dev libdbus-1-dev ffmpeg libavutil-dev libavformat-dev libavcodec-dev libevent-dev \
libxcb-xfixes0-dev xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev \
libfontconfig1-dev xorg-dev libclipper-dev
  1. 如果要构建Qt docs的话
sudo apt-get install libclang-dev llvm
  1. 如果要使用相机需要安装gstreamer
sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
	gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc 1.0-tools
  1. 有些模块需要依赖官网都找不到,比如相机那部分坑了我好久,后来才发现是少了依赖所以产物没有构建出来,具体缺少了什么模块的依赖还得自己去找了

报错

  1. 在执行make install期间链接库报错。

/usr/bin/ld.gold: error: cannot find -lclip2tri
/usr/bin/ld.gold: error: cannot find -lpoly2tri
/usr/bin/ld.gold: error: cannot find -lclipper
.obj/qgeopath.o:qgeopath.cpp:function QGeoPathPrivate::polygonContains(QGeoCoordinate const&) const: error: undefined reference to ‘c2t::clip2tri::pointInPolygon(QtClipperLib::IntPoint const&, std::vector<QtClipperLib::IntPoint, std::allocatorQtClipperLib::IntPoint > const&)’
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:220: …/…/lib/libQt5Positioning.so.5.12.4] Error 1

安装这个解决了

sudo apt-get install libclipper-dev
  1. 编译进行两三个小时后,如果你的电脑内存小于8G有可能会终止编译,并出现下面这两段。

    g++: fatal error: 已杀死 signal terminated program cc1plus
    ninja: build stopped: subcommand failed.

    • 造成这个错误的原因是因为系统资源不足,可以重新执行make尝试一下。
    • 还可以扩大系统的swap分区
    `先查看一下swap的大小`
    free -h 
    `我这边是2G,但是我的交换分区是8G,执行下面这段查看,猜测是swap_file(系统自带)没有计算在其中`
    sudo swapon --show
    `输出大概如下`
    > /dev/zram0           partition   2G
    > /swap_file           file        8G
    
    `/swapfile_1路径是可以更换的,银河麒麟系统通常有数据盘,数据盘很大,我一般选择这样/data/swap/swapfile_1`
    fallocate -l 8G /swapfile_1
    chmod 600 /swapfile_1
    mkswap /swapfile_1
    swapon /swapfile_1
    `然后编辑文件`
    vim /etc/fstab
    `在最后一行写入`
    /swapfile_1 swap swap defaults 0 0
    
    `执行完成之后,资源管理器中可能还是没变化,查询一下`
    sudo swapon --show
    `如果存在/swapfile_1应该就是可以了,查询swap看看容量是否变化了`
    free -h
    `容量变成了9G,应该是刚才新增的8G起作用了`
    
    • 或者make时少分配几个线程

环境变量

vim ~/.bashrc

在最后一行添加

# 路径换成你自己的
export PATH=/home/johnson/Qt5.12.4/bin:$PATH

然后执行

source ~/.bashrc

结束

经过六七个小时的编译,终于成功了。
我的QtWebEngine在--multi-process模式下偶尔会莫名的崩溃(崩溃status是QWebEnginePage::CrashedTerminationStatus (2),code是139;简单的html网页不会崩),需要reload web引擎才行;换成--single-process就好了,不知道怎么回事,有没有大佬知道情况的[拜托了🙏🙏🙏]文章来源地址https://www.toymoban.com/news/detail-752254.html

到了这里,关于银河麒麟V10 SP1 ARM编译QT源代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 银河麒麟服务器v10 sp1 安装 redis

    1、下载redis安装包 https://download.redis.io/releases/ 本文下载redis-7.0.11.tar.gz包,请按照自己需求下载相应文件。 2、将下载后的.tar.gz压缩包上传到到服务器自定义文件夹下 本人上传为系统的下载文件夹下,可以直接上传至指定目录下: 使用cp复制文件到指定目录下:  root@xxx-pc:

    2024年02月12日
    浏览(60)
  • 虚拟机安装intel架构的银河麒麟V10(SP1)

            银河麒麟是国产操作系统之一,是基于Linux内核的桌面操作系统,有自己的应用中心,具有一定的生态系统。今从官网下载了V10(SP1)镜像文件,在Windowns的VMware虚拟机上安装试用。     官网:https://product.kylinos.cn/productCase/171/36     点击 申请试用,然后进入下载页面

    2024年01月21日
    浏览(59)
  • 银河麒麟服务器v10 sp1 nginx 部署项目

    上一篇:银河麒麟服务器v10 sp1 nginx开机自动启动_csdn_aspnet的博客-CSDN博客  由于项目为前后端分离,前端项目使用nginx部署,VUE项目打包后上传至银河麒麟服务器: 8063 为前端项目文件目录,修改配置 ,默认配置没有处理:  sudo systemctl stop nginx.service  sudo systemctl status ngi

    2024年02月15日
    浏览(51)
  • 在银河麒麟V10SP1forARM版本上离线编译libreoffice-7.1.8.1和kkfileview的部署,实现在线查看功能

    编译libreoffice-7.1.8.1和配置kkfileview 需要以下文件, kkFileView-4.0.0-可以使用.tar.gz文件已经将配置文件增加进去 libreoffice-7.1.8.1.tar.xz 是libreoffice源文件,需要对其进行编译 libreoffice-external-tar.tar.gz 是libreoffice程序需要的相关组件 libreoffice-yum-new.tar.gz 编译器环境用的组件 autogen .i

    2024年02月04日
    浏览(82)
  • 银河麒麟高级服务器v10 sp1 iso镜像定制

    https://www.kylinos.cn/support/trial.html?pid=1        安装选择最小化安装 1 虚拟机下挂载原版镜像 1) 查看光盘是否已挂载 ls -l /dev/cdrom |grep cd 2) 将ISO所在的/dev/cdrom挂载到/media mount /dev/cdrom /media 2 安装制作发行版的工具 yum -y install createrepo mkisofs isomd5sum rsync 3 同步光盘文件到制作ISO的

    2024年02月06日
    浏览(51)
  • 银河麒麟桌面操作系统V10SP1修复boot分区

    一、问题现象 机器重启无法进入系统,出现“Loading initial ramdisk”界面,此时可能是boot文件损坏,导致无法进入系统 二、boot分区修复 1、准备一个与主机相同系统版本的系统启动盘 2、将U盘插入主机,进入bios将光盘(或U盘启动盘)设置为第一启动项 -- 开机选择“试用银河

    2024年02月11日
    浏览(251)
  • 银河麒麟服务器 v10 sp1 安装 .Net6.0

    系统版本、架构:  如果系统自带.netcore3,先卸载系统自带的.netcore3:  卸载.netcore3: 我的系统没有自带.netcore3,也没有yum命令。 下载二进制文件安装SDK: 下载 .NET 6.0 (Linux、macOS 和 Windows) 下载后将文件dotnet-sdk-6.0.411-linux-x64.tar.gz,上传至银河麒麟服务器: 我的第一步给文

    2024年02月12日
    浏览(78)
  • 银河麒麟桌面V10SP1版本系统休眠唤醒鼠标键盘失效解决方法

    使用银河麒麟桌面系统有时会出现系统休眠后再唤醒,鼠标键盘失效的问题,可尝试以下方法解决。 1.检查是否安装 laptop-mode-tools 工具 执行命令: 如果执行命令无结果输出,表示未安装(如果已安装,忽略第2步) 2.安装 laptop-mode-tools 包 执行命令: 安装完成后查看结果 3.判断

    2024年02月12日
    浏览(117)
  • 银河麒麟服务器操作系统 V10 SP1 开启SSH服务

    此处显示已经安装了openssh。 如果此处没有任何输出显示,表示没有安装openssh 当发现没有安装openssh时,使下面的命令安装openssh: 如图所示,已经开启sshd服务。 如果显示未开启sshd服务,使用下列命令开启sshd服务 使用下面的命令查看ssh服务是否开机启动 如上图所示,ssh已经

    2023年04月22日
    浏览(54)
  • 银河麒麟服务器v10 sp1 .Net6.0 上传文件错误

    上一篇:银河麒麟服务器v10 sp1 部署.Net6.0 http https_csdn_aspnet的博客-CSDN博客 .NET 6之前,在Linux服务器上安装 libgdiplus 即可解决,libgdiplus是System.Drawing.Common原生端跨平台实现的主要提供者,是开源mono项目。地址:GitHub - mono/libgdiplus: C-based implementation of the GDI+ API 因此,解决方法

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包