centos7源码编译qt5.15.15

前言:

        最近接手的一个项目是qt写的客户端, 里面使用qwebengine集成了web的功能, 但是原来的编译环境比较乱, 所以重新使用centos7搭建一个qt5.15.15的开发环境.

第一部分: 准备环境

       1, 我安装的是centos版本是: 7.9.2009, minimal安装.

        2, 编译高版本gcc, 我使用的是6.5.0, 下载地址如下:

https://ftp.gnu.org/gnu/gcc/gcc-6.5.0/gcc-6.5.0.tar.xz

        编译如下:

a) ./contrib/download_prerequisites 
b) mkdir build && cd build
c) ../configure --prefix=/usr/local/gcc6.5.0 --enable-threads=posix --enable--long-long --enable-languages=c,c++ --disable-checking --disable-multilib

d) make -j4 && make install

        配置PATH和库路径.

        3, openssl1.1, 下载地址如下:

https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1.zip

        编译如下:

./config --prefix=/usr/local/openssl

make -j4 && make install

        4, nodejs, 下载地址如下:

https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz

        配置PATH.

        5, ninja, 下载地址如下:

https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-linux.zip

        配置PATH.

        6, cmake, 下载地址如下:

https://cmake.org/files/v3.25/cmake-3.25.3-linux-x86_64.tar.gz

        配置PATH.

第二部分: 安装依赖 

yum groupinstall "Development Tools" -y

yum install -y 'xcb-util-*-devel' libxkbcommon-x11-devel libxkbcommon-devel

yum install -y libxkbfile libxkbfile-devel

yum install -y \
    libXinerama-devel \
    libXrandr-devel \
    libXrender-devel \
    libXt-devel \
    libXv-devel \
    libmng \
    libpng-devel \
    pciutils-devel \
    libuuid-devel \
    nss-devel \
    mesa-libGLU \
    libXtst-devel \
    mesa-libGLU-devel \
    pulseaudio-libs-devel \
    systemd-devel \
    libcap-devel \
    alsa-lib-devel \
    flex \
    bison \
    ruby \
    expat-devel \
    fontconfig-devel \
    freetype-devel \
    kde-filesystem \
    libICE-devel \
    libSM-devel \
    libXcursor-devel \
    libXft-devel \
    libXi-devel \
    unixODBC \
    unixODBC-devel \
    zlib-devel \
    gperf \
    libXcomposite-devel \
    dbus-devel \
    ninja-build \
    snappy-devel \
    mesa-libEGL-devel \
    libvpx-devel \
    libgcrypt-devel \
    libgcrypt

       此时我会选择卸载除了gcclib以外的gcc, 使用编译好的gcc6.5.0

rpm -e --nodeps gcc gcc-gfortran gcc-c++

第三部分: 代码准备

        我在编译的过程中, 发现报错:

components/spellcheck/spellcheck_buildflags.h: No such file or directory

        所以我们需要修改编译文件, 把下面的/root/qtsrc换成自己的qt源码主目录.

/root/qtsrc/qtwebengine/src/3rdparty/chromium/content/browser/BUILD.gn

在deps里添加

"//components/spellcheck:buildflags",
 

添加后完整如下:

  deps = [
    "//base",
    "//components/spellcheck:buildflags",
    "//content/browser/devtools:devtools_background_services_proto",
    "//content/browser/devtools:protocol_sources",
    "//content/common:buildflags",
    "//third_party/inspector_protocol:crdtp",
  ]

第四部分: 开始编译

a) mkdir build && cd build

b) ../configure -opensource -confirm-license -release -nomake examples -xcb -openssl -I/usr/local/openssl -L/usr/local/openssl/lib --prefix=/opt/qt

c) make -j8

        在编译过程会很多次遇到下面的错误, 如果没遇到, 那还是美滋滋的.

g++: internal compiler error: Killed (program cc1plus)

        如果遇到上面错误不用管, 等编译结束后再执行make命令, 最好写个脚本, 死循环里执行命令.

#!/bin/bash

while [ true ]; do
        make -j8
        sleep 1
done

        编译完成. 再执行make install进行安装. 

        结束.

结尾

感谢下面作者对我的启发.

CentOS7编译安装Qt5.9_centos7编译qtwebengine-优快云博客

Centos 7.6 源码编译安装 GCC 10.3.0_gcc 10.3.0 c++14-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值