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-CSDN博客
Centos 7.6 源码编译安装 GCC 10.3.0_gcc 10.3.0 c++14-CSDN博客

相关推荐
KoiHeng1 小时前
操作系统简要知识
linux·笔记
Johny_Zhao4 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
小毛驴8505 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
好好学习啊天天向上6 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
tan180°7 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
典学长编程7 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9988 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
DuelCode8 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
程序员爱钓鱼9 小时前
【无标题】Go语言中的反射机制 — 元编程技巧与注意事项
开发语言·qt
独行soc10 小时前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试