【QT源码编译】Linux下编译QT源码-程序员宅基地

技术标签: qt  linux  服务器  

本文以Qt5.12.8为例,且Qt解压到 ~/目录下,相关部分需要修改

0.安装g++
sudo apt-get update
sudo apt-get install g++

检查是否安装成功

g++ --version

1.下载解压源码

在压缩源文件目录所在位置输入如下解压命令:
sudo xz -d qt-everywhere-src-5.12.8.tar.xz 
sudo tar -xvf qt-everywhere-src-5.12.8.tar


2.解压完成后安装编译所需依赖的库
1)基础编译环境
sudo apt-get install libxcb-xinerama0-dev     
sudo apt-get install build-essential perl python git
2)安装编译libxcb的依赖

安装命令如下:
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

3)安装编译Qt Webkit的依赖

安装命令如下:
sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby

4)安装编译Qt WebEngine的依赖

安装命令如下:
sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst

-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison

5)安装编译 Qt Multimedia 的依赖(会报错,不用管)

安装命令如下:
sudo apt-get install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

6)安装编译QDoc的依赖

安装命令如下:
sudo apt-get install libclang-6.0-dev llvm-6.0

7)安装clang-8编译工具用于编译C/C++程序源码

安装命令如下:
sudo apt-get install clang-8

8)安装ninja编译工具

安装ninja编译依赖命令:
sudo apt-get install re2c

3.进入qt源码目录

./configure -prefix ~/qt5.12.8 -no-opengl -webengine-proprietary-codecs -qt-xcb

4.make && make install
5.配置环境变量

sudo vi /etc/profile
添加
export QTDIR=~/qt5.12.8
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

刷新环境变量,使其生效

sudo source /etc/profile

如果报错找不到source,切换为root用户在进行刷新

6.编译中可能遇到的问题

(1)出现error: ‘SIOCGSTAMP’ undeclared (first use in this function); did you mean ‘SIOCGARP’

解决方法:

在qt源码中搜索socketcanbackend.cpp,在头文件中添加#include <linux/sockios.h>

(2)qtdeclarative发生错误:building qtqml requires python,系统是ubuntu18.04,安装有python2,修复需要做2步:

a.用nano或者vi修改别名文件

$vi .bashrc

b.添加别名

alias python=python2

c.保存后,输入下面命令生效

$ source .bashrc

这个时候python已经能打印信息了

d.编译依然有错误,复制python2文件夹为python。

先查询python2路径,命令:

$ which python2

$ sudo cp /usr/bin/python2 /usr/bin/python

libdrm库
sudo apt-get install libdrm-dev

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hjmsdhr/article/details/137600095

智能推荐

最易懂的数据库异地多活方案-程序员宅基地

文章浏览阅读293次。Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路作者:莫那·鲁道来源:http://thinkinjava.cn/前言随着业务发展越来越快,数据量越来越多,用户也越来..._异地存活java

Android 应用集成友盟统计_apk文件中友盟appkey-程序员宅基地

文章浏览阅读896次,点赞3次,收藏4次。一、根据友盟官网的介绍引入依赖dependencies { implementation fileTree(include:['*.jar'], dir:'libs') // 下面各SDK根据宿主App是否使用相关业务按需引入。 // 友盟统计SDK implementation 'com.umeng.umsdk:common:9.4.7'// 必选 implementation 'com.umeng.umsdk:asms:1.4.1'// 必选 _apk文件中友盟appkey

Pytorch手撸交叉熵CrossEntropyLoss并修改one-hot输入_torch cross_entropy onehot-程序员宅基地

文章浏览阅读4.2k次,点赞17次,收藏37次。目录1 前言2 交叉熵的实现过程3完整的自定义交叉熵4.使用自己one-hot的交叉熵1 前言楼主最近要修改一下one-hot然后送入交叉熵中,由于pytorch的torch.nn.CrossEntropyLoss()已经封装好了one-hot,所以需要自定义重写交叉熵,这里主要是多级交叉熵,而不是二分类交叉熵。2 交叉熵的实现过程首先看多级交叉熵的计算过程:L=−1N∑iN∑c=1Myiclog(pic)L = -\frac{1}{N}\displaystyle\sum_i^N\display_torch cross_entropy onehot

Android 8.0后台执行限制_android 后台数据 多长时间生效-程序员宅基地

文章浏览阅读890次。Android O对应用在后台运行时可以执行的操作施加了限制,称为后台执行限制(Background Execution Limits),这可以大大减少应用的内存使用和耗电量,提高用户体验。后台执行限制分为两个部分:后台服务限制(Background Service Limitations)、广播限制(BroadcastLimitations)。后台服务限制如何才算是后台应用?除了下面情况外都是后..._android 后台数据 多长时间生效

R语言广义线性模型_lrm在r代码-程序员宅基地

文章浏览阅读9.6k次。转载自:http://blog.csdn.net/lilanfeng1991/article/details/361857391.广义线性模型和glm()函数广义线性模型扩展了线性模型的框架,它包含了非正态因变量的分析。广义线性模型通过拟合响应变量的条件均值的一个函数(不是响应变量的条件均值),假设响应变量服从指数分布族中的某个分布(并不仅限于正态分布),极大地扩展了标_lrm在r代码

咂题-程序员宅基地

文章浏览阅读209次。CODEVS1064虫食算题目描述Description所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母。来看一个简单的例子: 43#9865#045+8468#6633 44445506978其中#号代表被虫子啃掉的数字。根据算式,我们很容易判断:第一行的两个数字分别是5和3,第二行的数字是..._26个大写字母都至少出现一次。输出这个区间长度的最小值。

随便推点

Cordova 插件合集_cordova-plugin合集_cordova-plugin-magnetometer-程序员宅基地

文章浏览阅读5.5k次。1.0cordova-plugin-contacts 联系人,新增,联系人,拨打电话cordova plugin add cordova-plugin-contacts详细:cordova-plugin-contacts联系人操作_天马3798的博客-程序员宅基地_cordova 联系人1.cordova-plugin-themeablebrowsercordova plugin add cordova-plugin-themeablebrowser详细使用:cordova-p..._cordova-plugin-magnetometer

开源的Java反编译工具JD-GUI_jd-gui官网-程序员宅基地

文章浏览阅读1.1k次。JD-GUI 是一款开源的 Java 反编译工具,支持Windows和苹果Mac OS。以反编译和分析Java 5“字节码”及更高版本,它显示“ .class”文件的Java源代码。可以使用JD-GUI浏览重建的源代码,以立即访问方法和字段。 JD-Eclipse是Eclipse平台的插件。它允许您在调试过程中显示所有Java源代码,即使您没有全部源代码也是如此。..._jd-gui官网

android ota升级包屏蔽时间戳比较_android ota 升级不对比时间戳-程序员宅基地

文章浏览阅读1.2k次。Android的OTA升级包中,里面有一个升级脚本,该脚本会检测recovey镜像的编译时间和OTA包的编译时间,如果recovey比OTA包的时间要新的话,升级便会失败。方法一:直接屏蔽比较函数,到build/tools/releasetools/ota_from_target_files这个脚本,注释掉函数 script.AssertOlderBuild(ts, ts_text)调用,这样编译..._android ota 升级不对比时间戳

QT图片转Base64数据 与 Base64转图片_qt base64转图片-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏22次。图片转Base64数据 m_imagePath = QFileDialog::getOpenFileName(this, tr("select image"), "./pic/", tr("Image Files(*.jpeg *.jpg *.png *.bmp *.pgm *.pbm);;All(*.*)")); //选择图片 ui->imageDataPath->setText(m_qt base64转图片

MySQL存储函数之如何用in查询_mysql中的in查询-程序员宅基地

文章浏览阅读1k次。MySQL 存储过程_mysql中的in查询

安装Ubuntu后无法启动_ubuntu安装后无法启动-程序员宅基地

文章浏览阅读7.4k次。安装完Ubuntu20.04后,重启,只有一个下划线在左上角闪烁。或者有一个grub引导命令。_ubuntu安装后无法启动

推荐文章

热门文章

相关标签