前言
uos系统可通过以下命令安装qt版本:
sudo apt-get install libdtkwidget-dev qt5-default qtcreator qtdeclarative5-dev
经安装后测试是Qt5.11.3。
我需要的是Qt5.14.2,所以选择编译Qt5.14.2源码;几个月前尝试了编译一次,当时编译过程中出现了报错,当时时间很紧最后安装的默认版本来使用,最近有时间重新进行了一次编译,历经3个星期(4G的内存)终于解决了各种坑,编译成功了,现在将编译过程中遇见的一些坑记录一下,方便日后能记得这一次可恶的编译过程,如有描述欠缺的地方,还希望各位大佬给点意见指导指导🙏。
一、环境
硬件:飞腾D2000,内存4GB
系统:统信UOS20桌面系统ARM架构
二、准备工作
在QT官网下载链接下载qt5.14.2源码(Index of /archive/qt/5.14/5.14.2/single)
源码下载好之后,输入解压命令或者右键解压。
tar -xvf qt-everywhere-src-5.15.2.tar.xz
解压好之后,进入源码文件夹,打开终端,安装编译器。
sudo apt-get install g++
然后先安装一些依赖:(这些大概率是没有预装的)
sudo apt-get install pulseaudio*
sudo apt-get install libgstreamer* gstreamer*
sudo apt-get install libxkbcommon* libxcb* libthread*
还有一些依赖参考:https://www.cnblogs.com/ahuo/p/11286843.html
除此之外可能还缺少一些依赖或者系统的依赖版本或者名字与上方提供的参考依赖有出入,可以根据提示的错误类型自行查找安装。
三、源码编译
依赖安装好之后,在源码文件夹打开终端,执行configure:
./configure -prefix /home/it/uos_arm -confirm-license -opensource -release -make libs -nomake examples -pch -qt-libjpeg -qt-libpng -qt-zlib -fontconfig -system-freetype -opengl -xcb -dbus -alsa -gif -gstreamer 1.0 -pulseaudio
-prefix后面的路径指的是编译好之后库的路径,根据自己所需进行修改。
后面的参数是一些配置,也可以根据自己的情况进行删减或者增加。
configure成功结束之后,终端会提醒你可以执行make操作,此时输入:
sudo make -j4
由于本机内存问题,我是直接sudo make 的不敢用-j4,硬件条件好的话可以上-j8。
我所遇到的问题就是在make这一步:
一开始看见这个错误,没有注意之前的log信息,以为是因为用了系统的ninja没有使用qt自己的ninja导致的报错,当时尝试了添加编译参数:-proprietary-codecs -no-feature-webengine-system-ninja之后重新编译,还是报错,然后我把系统自带的ninja卸载了再重试,还是报错。
然后我就慢慢的往上翻看log信息,发现之前的log信息中有如下报错:
g++:fatal error 这个好像是内存问题导致的,查了一些方法,可以增加swap虚拟内存:
sudo swapoff /home/it/swapfile
sudo dd if=/dev/zero of=/home/it/swapfile bs=3M count=3072
sudo mkswap /home/it/swapfile
sudo swapon /home/it/swapfile
我是把swapfile文件放在了用户路径下,可以根据个人的分区不同修改路径,一定要充足的空间。
第一句如果是第一次新建swapfile会提示错误,不用管它直接执行后面的即可,这里我也踩了好几个坑,一开始我是把swapfile放在了系统/路径下分配了bs=1M count=3072,依旧报错了;然后我把空间增加到bs=3M count=3072,但是由于我系统盘只分配了15G所以内存爆了,编译的时候卡住了,重启之后任务栏出不来,然后我把/路径下的swapfile删掉还原,新建了一个swapfile在用户路径下,终于在编译一晚之后,成功了。
make成功之后,执行:
sudo make install
然后等待完成即可在之前设置的路径中找到编译好的qt5.14.2的库了。
四、安装qtcreator
在终端输入:
sudo apt-get install qtcreator
即可安装qtcreator。
五、qtcreator配置qmake版本
1.打开qtcreator,点击工具栏中的工具,然后点击选项,在kits设置中,选择Qt Versions。
2.然后点击添加,在文件选择弹窗中,进到你编译好的库路径里面,在bin路径下找到qmake。
3.然后会识别出具体的qt版本和qmake路径,此时点击Apply。
4.然后再点击构建套件(Kit)进入到kit配置,下滑到下方有一个Qt版本设置,点它的combobox里面有我们刚才配置好的qmake,选择它,然后依次点击Apply和OK。配置好的图示如下:
然后就可以用配置好的Qt开发环境愉快的进行开发了。
如果是用qmake或者打包的时候识别不到qmake,这里是要把qmake打到环境变量里面,
但是不建议直接在/etc/profile里面设置,建议每次使用的时候终端打一下。如果在/etc/profile里面设置了,重启之后桌面和图标还有所有窗口都会出现异常。此时就要进入到命令行模式,把/etc/profile还原再重启即可恢复。/etc/profile文件里面设置环境变量我在麒麟V10SP12203桌面系统X86架构里面路径包含中文也会出现问题,会进入不到桌面就黑屏,解决办法也是进入命令行恢复/etc/profile重启即可恢复。