银河麒麟aarch64 编译安装Qt5.9.9+QtCreator4.8.2
1. Qt5.9.9 编译安装
目前在银河麒麟V10 arm处理器下编译安装后可用的最高版本是Qt5.12.0
验证了很多版本,都存在xcb的问题,Qt5.12.0版本编译安装方法同Qt5.9.9
1.1 下载Qt5.9.9源码
下载:qt-everywhere-opensource-src-5.9.9.tar.xz1
官网:点击下载Qt5.9.9,下载*.tar.xz
系统环境如下
1.2 确保系统中g++,gcc,python,perl及环境符合安装要求
确保系统的gcc,g++, python, perl等符合Qt安装要求,具体请参见Qt源码内的README文档
1.2.1基础编译环境安装2
sudo apt-get build-dep qt5-default #不一定成功,但不影响安装
sudo apt-get install libxcb-xinerama0-dev
sudo apt-get install build-essential perl python git
1.2.2安装Libxcb
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
如果libglu1-mesa-dev安装报错,可以下载apttitude自动解决依赖问题( 先否定不装,再进行前置包的升降级就OK)
1.2.3安装OpenGL3
#如果openGL安装失败,且不需要,可忽略
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libegl1-mesa-dev
sudo apt-get install freeglut3-dev
#其他依赖
sudo apt-get install bison gperf flex ruby python libasound2-dev libbz2-dev libcap-dev \
libcups2-dev libdrm-dev libgcrypt11-dev libnss3-dev libpci-dev libpulse-dev libudev-dev \
libxtst-dev gyp ninja-build libfontconfig1-dev libx11-xcb-dev libicu-dev libatkmm-1.6-dev
否则报错:
ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.
1.2.4安装Qt WebKit
sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby
1.2.5安装Qt WebEngine
sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev \
libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev \
libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev \
gperf bison
1.2.6安装Qt Multimedia
sudo apt-get install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
1.2.7安装QDoc Documentation Generator Tool
sudo apt install libclang-6.0-dev llvm-6.0
1.3 编译与安装
1.3.1 解压tar文件并进入文件夹,进行编译检查
tar -xvf qt-everywhere-opensource-src-5.9.2.tar.xz
cd /home/xxx/qt-everywhere-opensource-src-5.9.2 (你已经解压的路径)
#进行编译检查
./configure -prefix $PWD/build -opensource -nomake tests
上述过程执行完毕后,确认没有报错,执行make命令。
如果报错,那么还有库没有被安装。主要原因可能是没有源导致,对apt进行换源,然后重复1.2.2~1.2.7过程,确保依赖库安装完全。
1.3.2 执行make命令4
编译后需配置环境变量,打开~/.bashrc,在文件末尾添加Qt环境变量如下。
#qt
export QTDIR=/xxx/xxx #(/xxx/xxx = 你想安装的路径)
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
使环境立即生效
source ~/.bashrc
开始编译
make -j8
编译过程中可能有许多问题5,现提供目前所遇到的问题及解决方案:
问题1:
#qeglfskmsegldevice.cpp报错
error: no declaration matches ‘Display* QEglFSKmsEglDevice::nativeDisplay() const
解决方案:
https://bugreports.qt.io/browse/QTBUG-62893
https://code.qt.io/cgit/qt/qtbase.git/commit/h=dev&id=9a640e7bc67b0a1ff5c61c63703b669e6f24521e
省流:将报错的函数整体替换为另一个版本
//用于替换的函数
void *QEglFSKmsEglDevice::nativeDisplay() const
{
return m_devInt->eglDevice();
}
问题2:
error: 'GL_gloat'等GL相关的类型找不到
解决方案:
找到报错的.cpp文件并打开,添加头文件,再编译
#include <GL/gl.h>
尽量将新添加的头文件放在第一行
问题3:
error: ‘SIOCGSTAMP’ 的错误
解决方案:
打开socketcanbackend.cpp,添加头文件,再编译
#include <linux/sockios.h>
1.3.3 开始安装6
编译完后无报错,执行make install命令,如下
make install
安装完成后,打开一个新的命令行。执行qmake -version查看是否安装成功,命令如下
qmake -version
#若成功,显示如下
QMake version 3.1
Using Qt version 5.9.9 in /xxx/xxx/lib
2.QtCreator编译安装
2.1 下载Qt-Creator-4.8.2源码
下载:qt-creator-opensource-src-4.8.2.tar.gz
官网:点击下载qt-creator
2.2 编译与安装
2.2.1 解压tar文件并进入文件夹,进行qmake
tar -xvf qt-creator-opensource-src-4.8.2.tar.xz
cd /home/xxx/qt-creator-opensource-src-4.8.2 (你已经解压的路径)
qmake -r
2.2.2 开始编译make
执行完成后,执行make命令进行编译,我看网上说,最好不要加工作负载核,容易报错,整个编译过程也比较长。
make
2.2.3 开始安装
执行完make之后,确认没问题之后,执行make install
开始编译
sudo make install
安装完成后,打开安装好的qtCreator
qtcreator
此时可能出现打不开qtcreator的情况,去bin文件夹下先运行一次,如果成功,修改环境变量就可以了。
Warning: No themes found in installation: "/usr/share/qtcreator/themes"
段错误 (核心已转储)
#方法
cd /xxx/xxx/bin
./qtcreator
如果可以成功打开qtcreator,配置环境变量,打开~/.bashrc,在文件末尾添加Qt环境变量如下。
#qtcreator
export QTDIR=/xxx/xxx #(/xxx/xxx = qtcreator安装的路径)
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
2.2.4 创建desktop文件
如果qtcreator安装完成后没有桌面图标,需要自行创建一个
cd /usr/share/applications
sudo vi qtcreator.desktop
然后在创建的新.desktop文件里写入:
[Desktop Entry]
Type=Application
X-GNOME-UsesTerminal=true
Exec=bash -ic "/xxx/xxx" %F (/xxx/xxx = qtcreator的安装路径)
Name=Qt Creator
GenericName=C++ IDE for developing Qt applications
X-KDE-StartupNotify=true
Icon=/yyy/yyy (/yyy/yyy = qtcreator的图标路径)
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType= text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;
将写好的文件,复制到桌面,然后给文件添加权限
sudo cp qtcreator.desktop ~/desktop/qtcreator.desktop
sudo chmod +x ~/desktop/qtcreator.desktop
然后双击桌面的图标,能够打开qtcreator即为成功
2.2.5 配置qtcreator的编译器和桌面环境
此时新建项目时提示需要配置,后面主要修改以下两个部分:Kits—>Compiler,需要选择两个编译器,然后在Qt version里面选择刚刚安装好的Qt-5.9.9。