【软通鲲鹏云最佳实践41】QT-4.8.7 鲲鹏云服务器安装实践

举报
软通智慧 发表于 2019/12/03 10:23:39 2019/12/03
【摘要】 Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它可以开发GUI程序,也可开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。这篇博客比较详细的描述了华为鲲鹏云服务器ECS KC1上的成功安装。

一、 软件介绍

Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

二、 支持的操作系统

经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行Varnish的全部功能:

     CentOS7.6

三、 支持版本和获取方式

     下载地址:http://download.qt.io/archive/qt/4.8/4.8.7/

四、 编译与测试环境

本文选用华为鲲鹏云服务器ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920。详细规格如下:

类别

子项

版本

云主机配置

ECS实例类型

kc1.large.4

ECS配置

4U16GB

EVS

高IO(80GB)

云OS

Kernel

4.18.0

 

五、 编译安装与测试

依赖安装

yum install libX11-dev libXext-dev libXtst-dev -y

编译安装

1) 执行以下命令,获取安装包。

wget http://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz

2) 执行以下命令,解压安装包:

tar -xvf qt-everywhere-opensource-src-4.8.7.tar.gz

3) 执行以下命令,进入安装目录.

cd qt-everywhere-opensource-src-4.8.7

4) 执行以下命令,生成makefile文件。

./configure

然后终端会出现让你选择商业版还是开源版,输入字母o选择开源版。然后会有协议让你接受,输入yes就OK了。系统就会开始对整个项目进行配置,稍等片刻就好。

安装完成后出现如下内容: 

    1575339290757964.png

        NOTICE: Atomic operations are not yet supported for this
        architecture.
        
        Qt will use the 'generic' architecture instead, which uses a
        single pthread_mutex_t to protect all atomic operations. This
        implementation is the slow (but safe) fallback implementation
        for architectures Qt does not yet support.

5) 执行如下命令,编译安装qt

 gmake
 gmake install

6) 配置环境变量。

执行命令:vim /etc/profile

添加如下代码:

export QTDIR=/usr/local/Trolltech/Qt-4.8.7
export PATH=$QTDIR/bin:$PATH  
export MANPATH=$QTDIR/man:$MANPATH  
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

执行命令:source /etc/profile

验证测试

1) 执行如下命令,出现下图,说明安装成功

qmke -v

    1575339558730834.png


问题总结

      安装的过程中可能会出现如下的错误:

      .......

/opt/qt-everywhere-opensource-src-4.8.7/bin/qmake: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/qt-everywhere-opensource-src-4.8.7/bin/qmake)
/opt/qt-everywhere-opensource-src-4.8.7/bin/qmake: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/qt-everywhere-opensource-src-4.8.7/bin/qmake)
Basic XLib functionality test failed!
 You might need to modify the include and library search paths by editing
 QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /opt/qt-everywhere-opensource-src-4.8.7/mkspecs/linux-g++.

解决办法:

1) 执行命令, 查看是否有“CXXABI_1.3.8”,没有说明需要安装:

   strings /lib64/libstdc++.so.6|grep CXXABI

    1575339696761356.png


2) 复制高版本的libstdc

查找/libstdc++.so.6: version `CXXABI_1.3.9文件,并进入路径进行查找, 发现系统中的版本好还有大于libstdc++.so.6的,因此,需要对该路径下的包进行配置

cp /usr/lib/libstdc++.so.6.0.24 /usr/lib64/

3) 进入lib64路径建立软连接

cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.24 libstdc++.so.6

4) 查看原先的链接

strings /lib64/libstdc++.so.6|grep CXXABI

如下图,这样就有CXXABI_1.3.8 CXXABI_1.3.9的版本

 

1575339727391782.png


六、 声明

本文档中的软件包均来自软件官网,安装文档部分参考官网安装方法,本软件测试环境为华为鲲鹏云ARM服务器,具体配置信息参照《编译与测试环境》部分。

本文档中的软件安装测试基于华为鲲鹏云ARM服务器环境测试,如在使用本文档的安装方法进行安装过程中,可能由于系统版本、软件依赖或其他原因造成软件安装不成功,请自行解决或联系我们,请事先备份相关重要数据、资料。

使用文档风险由用户自行承担,在适用法律允许的最大范围内,对因使用或不能使用本文档所产生的损害及风险,包括但不限于直接或间接的个人损害、商业赢利的丧失、贸易中断、商业信息的丢失或任何其它经济损失,我司不承担任何责任。

我司不担保所提供的软件功能及服务一定能满足用户的要求,也不担保服务不会中断,对服务的及时性、安全性、真实性、准确性都不作担保。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。