当前位置: 首页 > news >正文

cms是网站吗安徽疫情最新情况

cms是网站吗,安徽疫情最新情况,自己做网站宣传产品,平面设计工作室创业计划书目录 前言1.源码下载2.编译安装2.1 安装依赖2.2 编译2.3 遇到的问题2.4 安装 3.编译qtwebengine3.1 安装依赖库3.2 编译3.3 遇到的问题3.4 安装 4.配置开发环境5.测试6.程序无法输入中文的问题总结 前言 近期因参与开发的某个软件需要适配银河麒麟v10arm 平台,于是…

目录

      • 前言
      • 1.源码下载
      • 2.编译安装
        • 2.1 安装依赖
        • 2.2 编译
        • 2.3 遇到的问题
        • 2.4 安装
      • 3.编译qtwebengine
        • 3.1 安装依赖库
        • 3.2 编译
        • 3.3 遇到的问题
        • 3.4 安装
      • 4.配置开发环境
      • 5.测试
      • 6.程序无法输入中文的问题
      • 总结

前言

近期因参与开发的某个软件需要适配银河麒麟v10arm 平台,于是自己搭建起一套Qt 开发环境,在此记录下具体过程,以供有需要的朋友参考。一开始手上并没有Arm架构的PC,先在Windows下用Vs2017和QtCreator 开发,软件开发快结束的时候Arm PC到了。Qt 没有提供可直接安装的arm架构安装包,只能自己通过编译Qt 来搭建开发环境。

1.源码下载

下载Qt5.12.7,从这里下载Qt5.12.7 。一定要选择后缀为.tar.xz的源码包,zip源码包亲测编译时会遇到奇怪的问题。
在这里插入图片描述

2.编译安装

2.1 安装依赖

  • 安装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

2.2 编译

打开终端,cd到源码所在目录,执行configure程序并make,这里以编译release版本为例

./configure -prefix  /opt/qt5.12.7  -opensource  -release  -nomake tests -skip qtvirtualkeyboard 接着执行make 命令make -j4

2.3 遇到的问题

编译过程遇到了一些问题,记录如下
1)问题一

/usr/bin/ld.gold:错误:cannot find -lclip2tri
/usr/bin/ld.gold:错误:cannot find -lpoly2tri
/usr/bin/ld.gold:错误:cannot find -lclipper

该问题的原因是qtlocation模块未编译完整,重新执行 make -j4 module-qtlocation 命令 可消除此错误,也可以在执行configure命令的时候添加 -skip qtlocation 来跳过编译。
2)问题二
xcb-xfixes development package not found
这个问题的解决方式是安装对应的软件包,执行下面的命令来安装,安装之后重新执行 make -j4。

sudo apt-get install libxcb-util0-dev

2.4 安装

除此之外还有其他一些小问题,根据错误提示就能解决,没记录下来。
make 结束之后,执行 sudo make install 命令,会将编译好的Qt开发环境安装到之前设置的目录下 /opt/qt5.12.7 。

3.编译qtwebengine

qtwebengine是后期需要引入echarts时才编译的,编译过程中也遇到了一些奇怪的问题,特在此记录下来备忘。qtwebengine需要用到qmake及Qt的一些核心库,因此必须先确保第3节中的qt编译完成。

3.1 安装依赖库

sudo apt-get install bison build-essential gperf flex 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 libxrandr-dev

在安装 libnss3-dev 时报错,大概意思是版本不对,使用sudo apt-get install libnss3-dev = xxxversion ,安装成功。错误如下:

ibnss3-dev : 依赖: libnss3 (= 2:3.49.1-1kylin1.5) 但是 2:3.49.1-1kylin1.6 正要被安装

解决方法,安装指定版本的依赖包:
sudo apt-get install libnss3=2:3.49.1-1kylin1.5

3.2 编译

打开终端, cd 到 src/qtwebengine 目录下,执行命令:

../qtbase/bin/qmake qtwebengine.pro

3.3 遇到的问题

  • gperf not found

执行完qmake 命令后报错:gperf not found,以为gperf 没有安装成功,再次使用apt-get 安装缺少的依赖,sudo apt-get install gperf ,安装完成后需要将configure命令生成的缓存清除掉然后重新执行configure 命令,并再次执行qmake,命令如下:

rm config.cache
./configure -prefix  /opt/qt5.12.7  -opensource  -release  -nomake tests -skip qtvirtualkeyboard 
../qtbase/bin/qmake qtwebengine.pro
make -j4
  • X11/Xlib-xcb.h 找不到
    不出意外开始编译了,经过漫长的等待,编译又出错了,这次遇到的是:fatal error X11/Xlib-xcb.h 文件不存在。第一感觉是缺少对应的库,经过一番查找发现需要安装 libx11-dev ,于是执行 sudo apt-get install libx11-dev,成功安装后仍然报错。通过find命令查找该头文件,确实没有找到 find /usr -name Xlib-xcb.h 。 我耐着性子查询了很多资料还是没能解决问题,这时只剩下最后一条路了,那就是下载libx11-dev源码,从libx11地址下载系统libX11版本对应的libx11-dev源码后,与当前系统/usr/lib/include/X11 目录进行比较发现系统重确实少了Xlib-xcb.h 文件,而下载的源码中刚好有这个文件,于是将 Xlib-xcb.h 复制到 /usr/lib/include/X11 目录下,重新执行 make -j4 继续编译。
  • libXlib-xcb.so 找不到
    又是漫长的等待过后报了一个错,这次是 libXlib-xcb.so 找不到,通过find命令发现在 /usr/lib/arm-linux-gnueabihf/ 目录下有这个库,根据报错信息提示在/usr/lib/aarch64-linux-gnu/ 目录下创建了一个 软连接 ln -s /usr/lib/arm-linux-gnueabihf/libXlib-xcb.so libXlib-xcb.so, 接着再次执行make -j4 ,这次没有提示libXlib-xcb.so 找不到,而是提示libXlib-xcb.so 不兼容。
  • libXlib-xcb.so 不兼容
    针对这个问题,我打算重新编译libXlib 库。首先安装libtool 和 autoconfig
sudo apt-get install libtool autoconf

切换到libXlib 源码根目录下 执行

 ./autogen.shconfigure.ac:24: error: must install xorg-macros 1.15 or later before running autoconf/autogen

下载对应的 rpm 安装包,下载地址

sudo rpm -ivh xorg-x11-util-macros-1.19.3-4.el9.noarch.rpm --nodeps --force

安装后再次执行

./autogen.sh
make 

编译结束后会生成libXlib-xcb.so ,把库拷贝到/usr/lib 目录下, 删除之前创建的 /uar/lib/aarch64-linux-gnu 目录下的软连接,重新创建对应的软连接,然后回到qtwebengine 根目录下再次 执行 make -j4

  • open CFI at the end of file; missing .cfi_endproc directive
    这个问题是qtwebengine 编译过程中由于占用内存太多,而系统内存不足导致的报错。我用的设备内存是8G,交换空间是9G,为了解决这个问题将交换空间增加了20G,最终才编译成功。

以下是增加交换空间用到的几个命令:

#创建swap文件
mkdir -p /var/cache/swap
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1G count=20
#转换swap文件
sudo mkswap -f /var/cache/swap/swap0
#激活swap文件
sudo swapon /var/cache/swap/swap0
#卸载
sudo swapoff /var/cache/swap/swap0
#永久生效
sudo vim /etc/fstab
#写入以下内容:
/var/cache/swap/swap0 none swap defaults 0 0

再次执行make -j4这次成功生成了 libQt5WebEngine 等几个qtwebengine 用到的库。

3.4 安装

在qtwebengine 根目录下执行sudo make install ,生成的库会自动安装到/opt/qt5.12.7目录下。

4.配置开发环境

首先在软件商店中下载并安装QtCreator,安装完成之后配置QtVersion 、编译器、Kits等。可以参考这篇文章配置链接

5.测试

新建一个项目,运行测试。这里遇到一个问题,程序可正常编译运行,但是源码文件确报错 unexpected class name,这是因为缺少一个软件包,通过安装这个软件包解决了此问题,安装命令如下:

sudo apt-get install libclang-common-8-dev

安装完成后重启QtCreater,不会再出现上面的问题了。

6.程序无法输入中文的问题

经过查询发现是插件问题,自己编译的qt开发环境中缺少插件 libfcitxplatforminputcontextplugin.so,这里有两个办法解决这个问题,一个是下载源码自己编译该插件,另一个是在系统中找到这个插件,并拷贝到对应的插件目录中。这里采用第二种方式解决了该问题,如果第二种方式不能解决,那就尝试用第一种方式自己编译插件吧。

总结

从零开始搭建麒麟系统arm平台下的Qt开发环境还是挺折磨人的,在这个过程中会遇到很多新的问题,只有自己动手实践一遍才能真正体会。我把完整的qt环境上传到git上了,如果你也刚好需要而又不想折腾的话可以直接下载使用。下载地址:
以上就是本篇的所有内容了,欢迎评论区留言讨论!!!

http://www.hengruixuexiao.com/news/6599.html

相关文章:

  • 做网站的缺点360网站seo手机优化软件
  • 如何查找同行网站做的外链网站seo是什么意思
  • 建设库官网查询系统云南优化公司
  • 网站开发应注意什么网络销售是干嘛的
  • 做网站如何避免商标侵权百度号码认证平台官网首页
  • 响应式网站建设免费太原seo哪家好
  • 昆明网站建设优化技术湖南网络推广排名
  • 百度网站建设多少钱独立站
  • saas系统是干嘛的怎么进行网站关键词优化
  • 集团网站制作公司网络流量分析工具
  • 做亚马逊和淘宝网站百度指数代表什么意思
  • 中国建设网官网网站市场调研的方法
  • 网站对固定ip转向怎么做竞价推广返点开户
  • 济南网站建设加q479185700优化大师专业版
  • 怎么用dedecms搭建网站百度免费打开
  • 建筑设计师接单平台seo点击排名
  • 做网站建设的企业windows优化大师卸载不了
  • 如何用网站做淘宝客深圳seo优化公司搜索引擎优化方案
  • 网站防采集交换链接平台
  • 巴零网站建设佛山网络营销推广
  • 吴忠市住房和城乡建设厅网站日本樱花免m38vcom费vps
  • 宁波网站建设联系电话查询自己怎么做游戏推广赚钱
  • 做家装的网站有什么不同近期重大新闻事件10条
  • 企业网站找谁做西安发布最新通知
  • 增城有什么网站做招聘的优化设计三年级上册语文答案
  • 上海建设银行长宁区各分行网站百度搜索推广的五大优势
  • mac 做网站开发东莞关键词优化平台
  • 怎么建设自己网站的后台贴吧推广
  • 怎样用css做网站seo产品推广
  • discuz做视频网站合肥网站推广优化公司