[银河麒麟]源码编译安装Qt 5.9.8

8 篇文章 0 订阅

国产飞腾服务器,银河麒麟操作系统,系统自带Qt 4.8和5.6,项目需要在离线状态下重新编译安装一个稳定版本,选择Qt 5.9.8,记录一下自己踩的坑吧。参考了许多大神的博客还有Qt源码内的README文档。

一、源码准备
  1. Qt 5.9.8源码下载网址
    一定要是红框框住的tar.xz,而不能是.zip,经本人尝试解压以后进行下面步骤会出现各种错误,可能是编码问题。在这里插入图片描述

  2. 确保系统的gccg++pythonperl等符合Qt安装要求,具体请参见Qt源码内的README文档。随便在某处位置进入终端,输入:

    g++ --version
    gcc --version
    python
    perl -version
    

    检查是否符合README中的系统要求。
    3.

二、编译安装Qt
2.1 解压文件

将下载好的源码压缩包放在/home/kylin/Qt_Source/下,右键进入终端,执行:

kylin@kylin:~/Qt_Source$ xz -d qt-everywhere-opensource-src-5.9.8.tar.xz
kylin@kylin:~/Qt_Source$ tar -xvf qt-everywhere-opensource-src-5.9.8.tar

第一步解压xz,第二步解压tar,得到源码文件夹。

2.2 修改arm交叉编译器

然后进入源码解压后的目录qtbase/mkspecs/,修改arm平台交叉编译器,注意看注释说明:

kylin@kylin:~/Qt_Source/qt-everywhere-opensource-src-5.9.8$ vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

#
# qmake configuration for building with arm-linux-gnueabi-g++
#
 
MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib
 
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# 修改以下内容,13行以后
# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc
QMAKE_CXX               = arm-linux-gnueabihf-g++
QMAKE_LINK              = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs 
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_NM                = arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = arm-linux-gnueabihf-strip

修改为这个样子,也就是将arm-linux-gnueabihf替换为aarch64-linux-gnu

#
# qmake configuration for building with arm-linux-gnueabi-g++
#
 
MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib
 
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = aarch64-linux-gnu-gcc
QMAKE_CXX               = aarch64-linux-gnu-g++
QMAKE_LINK              = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR                = aarch64-linux-gnu-ar cqs 
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
QMAKE_NM                = aarch64-linux-gnu-nm -P
QMAKE_STRIP             = aarch64-linux-gnu-strip

想要检验一下的话,在控制台输入:

kylin@kylin:~$ aarch64-linux-gnu-g++ -v

如果有显示如下一大段内容,则该交叉编译器是没有问题的。。

2.3 添加注释

然后修改~/Qt_Source/qt-everywhere-opensource-src-5.9.8/qtimageformats/src/3rdparty/libwebp/src/dsp/dsp.h文件,注释一行内容:

//#define WEBP_USE_NEON  // Android targets that might support NEON
//注释后就可以编译通过, 未出现问题,位置72行
2.4 输入配置指令和参数。

部分参数:

  • -prefix指定安装路径。默认的安装目录和平台相关,但是在configure时,可以通过-prefix选项指定安装目录,比如./configure -prefix /usr/local/Qt-5.9。这样一来,在执行make install指令时,编译完成的binlib或者其他子目录就会拷贝到/usr/local/Qt-5.9/目录中。
  • 交叉编译选项:
    -xplatform选项指定了目标平台和编译时使用的编译器,Qt支持的平台和编译器都在qtbase/mkspecs目录中。比如,在Ubuntu Linux系统中,Qt能被多种编译器编译,比如clangg++。如下所示,指定qtbase/mkspecs/linux-arm-gnueabi-g++平台进行编译,也和刚刚修改的文件相对应。
  • -release Compile and link Qt with debugging turned off.
  • -opensource Compile and link the Open-Source Edition of Qt.
  • -shared Create and use shared Qt libraries.
  • -nomake <part> Exclude part from the list of parts to be built.
  • -xplatform <spec> The operating system and compiler you are cross compiling to.See the README file for a list of supported operatingsystems and compilers.
  • -no-iconv Do not enable support for iconv(3).
  • -qt-zlib Use the zlib bundled with Qt.

执行如下指令:

kylin@kylin:~/Qt_Source/qt-everywhere-opensource-src-5.9.8$ ./configure -prefix /usr/local/Qt-5.9 -release -xplatform linux-arm-gnueabi-g++ -opensource -nomake examples -nomake tests -confirm-license -shared -no-iconv -qt-xcb

几分钟后配置检查完毕,输出:

...
...
...

Note: Also available for Linux: linux-clang linux-icc

Note: Disabling X11 Accessibility Bridge: D-Bus or AT-SPI is missing.

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into '/usr/local/Qt-5.9'.

可以看出,下一步执行make,然后必须要继续执行make install,如果按照源码根目录中的README指示来,不修改交叉编译器设置,也不修改最后的安装目录,也不进行上述注释,直接输入:

./configure -prefix $PWD/qtbase -opensource -nomake tests

那么会提示Once everything is built, you should not run 'make install',直接进行一步make即可,qt会默认安装到源码目录下的qtbase中,那么接下来的qmake境配资也会不一样。

2.5 make & make install
kylin@kylin:~/Qt_Source/qt-everywhere-opensource-src-5.9.8$ make -j 4 -s
# 可以make -j 4 2>&1 | tee makeLog.txt将log打印到txt文件中查看

kylin@kylin:~/Qt_Source/qt-everywhere-opensource-src-5.9.8$ make install
# make install 2>&1 | tee installLog.txt

make时间较长,大概要几个小时,make install就快多了,耐心等待吧……最后结果:
在这里插入图片描述
到这一步,Qt编译安装成功。见下一篇博文[银河麒麟]源码编译安装Qt Creater

第一次接触银河麒麟系统,感触还挺大的。以前安装软件都是在windowslinux系统上,x86架构机器,资料也很多,但这次是真的踩了大坑。反思一下自己有时候还是会陷入思维误区,自己还是一个比较固执的人,这样在某一件事上面花费的时间可能会比其他人大得多。当遇到一个问题的时候,真的不能怕麻烦,有时候你就停留在你思想的小圈子,什么都想怎么简单怎么来,到头来发现,你搞完一件事花的时间是其他人的几倍。真的要解决一个问题就得广泛搜集资料,抓住问题的细点,去搜索去研究,这样在全局上空你回过头来看,就会感觉豁然开朗,原来问题如此简单。

  • 18
    点赞
  • 139
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
要在飞腾银河麒麟安装Qt,可以按照以下步骤进行操作: 1. 首先,确保已经安装Qt Creator。如果没有安装,可以使用以下命令进行安装: 2. 打开Qt Creator后,点击菜单栏中的“工具”选项,然后选择“选项”。 3. 在弹出的对话框中,选择“构建和运行”选项。在“构建工具”选项卡中,点击“添加”按钮选择所需的Qt版本。 4. 如果你需要安装特定版本的Qt,可以使用qtchooser命令进行安装。例如,如果你想安装Qt 5.9.9版本,可以使用以下命令: 5. 如果你想在飞腾银河麒麟编译Qt 5.9.8版本,可以使用aarch64-linux-gnu-g编译器进行编译。你可以选择在飞腾银河麒麟上直接编译,或者进行交叉编译。 通过按照上述步骤进行操作,你可以在飞腾银河麒麟安装并使用Qt。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [银河麒麟V10 + 飞腾CPU编译安装 Qt5.9.9](https://blog.csdn.net/Sakuya__/article/details/127536152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [飞腾上银河麒麟编译qt5.9.8,使用aarch64-linux-gnu-g++,可以在飞腾直接编译,也可交叉编译](https://download.csdn.net/download/qq_40170041/86223357)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Antrn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值