Ubuntu下QT静态编译教程

3 篇文章 0 订阅

1.安装Ubuntu系统,然后 root 账户登录,不然可能会有权限问题,避免麻烦。

==================开启root账户并以root自动登录教程=============

1.以普通用户登录系统,创建root用户的密码

在终端输入命令:sudo passwd root

输入两次密码确认

2.修改 50-ubuntu.conf 文件(以ubuntu20为例)

在终端输入命令:sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

在文件末尾增加如下两行:

greeter-show-manual-login=true
all-guest=false

3.修改 gdm-autologin 文件

在终端输入命令:sudo gedit /etc/pam.d/gdm-autologin

# 注释掉第三行的 auth required pam_succeed_if.so user != root quiet_success

4.修改 gdm-password 文件

在终端输入命令:sudo gedit /etc/pam.d/gdm-password

# 注释掉第三行的 auth required pam_succeed_if.so user != root quiet_success

5.修改 /root/.profile 文件

在终端输入命令:sudo gedit /root/.profile 

将文件末尾的 mesg n 2> /dev/null || true 这一行修改成

tty -s&&mesg n || true

6.root用户自动登录 修改custom.conf

在终端输入命令:sudo gedit /etc/gdm3/custom.conf

在[daemon]下添加:

AutomaticLoginEnable=true
AutomaticLogin=root
TimedLoginEnable = true
TimedLogin = root
TimedLoginDelay = 10

重启后,则自动登陆root 账户

------------------------------------------------------------------------------------------

2.安装QTCreater(为什么要先安装这个?因为这里可以选择自动安装openssl)

下载QtCreator安装文件:(建议选择在线安装包,否则不会有openssl选择项安装)

wget https://download.qt.io/archive/online_installers/4.5/qt-unified-linux-x64-4.5.1-online.run

修改文件权限:

chmod -R 777 qt-unified-linux-x64-4.5.1-online.run

执行文件:

./qt-unified-linux-x64-4.5.1-online.run

输入QT的账号密码:

 勾选之后下一步:

 其中的直接下一步:

设置安装路径,并且选择客制化安装:

 因为是静态编译,只需要安装QtCreator编译器,其他不需要(建议选择上openssl):

然后点击下一步直到安装完成结束。

3.打开终端,安装静态编译的必要环境:

 如果没有安装vim命令,执行命令安装:sudo apt-get install vim

首先,你得有 gcc 

在终端输入:gcc -v

  

如果没有显示gcc版本,则输入命令安装:sudo apt-get install gcc

同理,执行命令:g++ -v

如果没有显示g++版本,则输入命令安装:sudo apt-get install g++

继续安装其他依赖:

注:如安装时,遇到暂停需要输入y时,直接输入y,然后确定即可。

sudo apt-get install bison build-essential gperf flex ruby libasound2-dev libbz2-dev libcap-dev libcups2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev libxkbcommon-x11-dev python3 libxcb-xfixes0-dev libqt5serialport5 libqt5serialport5-dev libgl1-mesa-dev freeglut3-dev aptitude

如果项目需要用到openssl(大部分项目应该用得到,如果用不到,可以忽略) 则还需要安装openssl 1.1.1 版本(如果前面安装QTCreater用的是完整离线包安装的,则还需要检测你是否安装openssl,注意:qt5 用到的 openssl 必须是 1.1.1 版本)

输入命令:openssl version

如果没有显示版本,则没安装。

如果显示 的不是 1.1.1  的版本,则需要先卸载。

======================安装openssl教程===================================

卸载原有 openssl 版本

sudo apt-get remove openssl

下载最新源码

sudo wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz

解压下载的源码

# sudo tar -zxvf openssl-1.1.1d.tar.gz

进入源码目录

sudo cd openssl-1.1.1d/

配置

这里有两种方案:

-------------------------------------------第一种-------------------------------------------

sudo ./config shared --prefix=/usr/local/openssl --openssldir=/usr/lib/openssl

编译并按照

sudo make && make install

设置环境变量

sudo vim ~/.bashrc

在最后一行添加

export PATH=$PATH:/usr/local/openssl/bin

保存退出

使上面的设置生效

sudo source ~/.bashrc

创建软连接

sudo ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1

sudo ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

-------------------------------------------第一种结束-------------------------------------------

-------------------------------------------第二种-------------------------------------------

说明:如果第一种不行,则试试第二种方案。

sudo ./config

编译并按照

sudo make && make install

修改配置 sudo vim ~/.bashrc

删除类似带 openssl 或者 ssl 目录的配置 

export PATH=$PATH:/usr/local/openssl/bin

修改配置 sudo vi /etc/profile

删除类似带 openssl 或者 ssl 目录的配置 

然后重启系统

最后使用 openssl version 校验版本

openssl version

OpenSSL 1.1.1d  

-------------------------------------------第二种-end------------------------------------------

4.安装完成后,则在剩余盘符大于20G的文件夹下,编译源码比较大,下载和编译源码:

比如我选择路径是:/home/qt    选择自己想保存的目录

执行命令到对应目录下:cd /home/qt

下载源码包,我选择的是qt5.12.10版本:

wget https://download.qt.io/archive/qt/5.12/5.12.10/single/qt-everywhere-src-5.12.10.tar.xz

执行解压:

tar -xvf qt-everywhere-src-5.12.10.tar.xz

解压完成后,进入解压的文件夹下:

cd qt-everywhere-src-5.12.10

创建文件 autoConfigure.sh然后就是linux下操作文本的基本命令,按 i 变为插入状态然后粘

vim autoConfigure.sh

贴以下代码:

#! /bin/bash

QT_INSTALL_PATH="-prefix /home/qt5.12.10"     #你的Qt保存路径(自己修改)
QT_COMPLIER+="-platform linux-g++-64"  #编译器

CONFIG_PARAM+="-static "               #静态编译
CONFIG_PARAM+="-debug -release "    #编译release,两种都编译 -debug -release 
CONFIG_PARAM+="-nomake examples "      #不编译examples
CONFIG_PARAM+="-nomake tests "         #不编译tests

CONFIG_PARAM+="-qt-xcb "

#选择Qt版本(开源, 商业), 并自动确认许可认证
CONFIG_PARAM+="-opensource "           #编译开源版本, -commercial商业版本
CONFIG_PARAM+="-confirm-license "      #自动确认许可认证

echo "./configure $CONFIG_PARAM $QT_COMPLIER $QT_INSTALL_PATH"

./configure $CONFIG_PARAM $QT_COMPLIER $QT_INSTALL_PATH

按ESC退出编辑状态,输入  :wq   保存文件。

然后修改文件权限:

chmod -R 777 autoConfigure.sh

执行脚本文件:

./autoConfigure.sh

等待执行完成,如果没有Error,则为成功,警告可以忽略。

注意:异常处理在最后章节  6.异常处理

配置完成后,执行命令:

sudo make -j4

开始编译(-j4参数可修改,代表多线程编译,也可去除),等待编译完成。

sudo make -j4

编译完成后,执行命令安装:

sudo make install

sudo make install

如果没有异常出现,则生成的静态编译文件则在:

QT_INSTALL_PATH="-prefix /home/qt5.12.10"     #你的Qt保存路径(自己修改)

这个路径下。

5.打开QtCreator,配置编译

打开QtCreator,如果未生成运行快捷方式,则可以到文件夹下执行启动文件。

如我的路径是:/opt/Qt/Tools/QtCreator/bin 下的 qtcreator 文件,运行就行。

启动后,配置编译环境:

 

 然后添加套件:

 

添加完成后,记住,都要点击 应用 按钮保存配置。

然后就可以打开你的工程编译了,选择你添加的这个套件即可。 

6.异常处理

1.如果出现:error: ‘runtime_error’ is not a member of ‘std’

找到文件:

/home/qt/qt-everywhere-src-5.12.10/qt-everywhere-src-5.12.10/qtlocation/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp

在第一行添加:

#include <stdexcept>

找到文件:

/home/qt/qt-everywhere-src-5.12.10/qt-everywhere-src-5.12.10/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/util.hpp

在最后一行添加:

#include <cstdint>

2.如果出现:error: ‘numeric_limits’ is not a member of ‘std’

则需要修改代码:

执行命令:

sudo gedit  /home/qt/qt-everywhere-src-5.12.10/qtbase/src/corelib/global/qglobal.h

在最后添加:

#include <stdexcept>
#include <limits>

 

3.如果出现 错误 python: not found

解决方法:

ls -l /usr/bin/python*

安装python2.7:

sudo apt install python2-minimal

 需要切换到2.7版本:

#切换python版本为2.7
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
#切换python版本为3.7
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

 输入命令:python2 -V

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在QT静态编译中包含OpenSSL支持,您需要在重新配置QT源代码时添加“-openssl-linked”选项,并将OpenSSL库路径传递给“-openssl”选项。例如,以下是在Ubuntu编译QT 5.15.2静态版本,同时包括OpenSSL的示例命令: 1. 下载OpenSSL 在 https://www.openssl.org/source/ 下载源码包,例如 openssl-1.1.1i.tar.gz 2. 解压并编译OpenSSL 解压 openssl-1.1.1i.tar.gz 至 /usr/local/src/ ``` cd /usr/local/src/openssl-1.1.1i/ ./config --prefix=/usr/local/openssl-1.1.1i --openssldir=/usr/local/openssl-1.1.1i make -j8 make install ``` 以上命令将编译并安装OpenSSL到 /usr/local/openssl-1.1.1i 目录下。 3. 重新配置QT源代码 在重新配置QT源代码时,您需要添加以下选项: ``` ./configure -prefix /opt/qt-static-openssl -static -release -opensource -confirm-license -no-sql-sqlite -no-icu -no-opengl -no-gtkstyle -no-pch -no-dbus -openssl-linked -openssl /usr/local/openssl-1.1.1i -nomake examples -nomake tests ``` 在上面的命令中,我们添加了“-openssl-linked”选项,以便将OpenSSL库静态链接到QT二进制文件中。我们还使用“-openssl”选项指定了OpenSSL库的路径。 4. 编译QT源代码 然后,您可以使用以下命令编译QT源代码: ``` make -j8 ``` 这将使用8个线程并行编译QT源代码。整个编译过程可能需要一些时间,具体时间取决于您的计算机性能和QT源代码的大小。 5. 测试QT静态版本是否包含OpenSSL 编译完成后,您可以使用以下命令来测试QT静态版本是否包含OpenSSL: ``` ldd /opt/qt-static-openssl/bin/qmake | grep ssl ``` 如果输出中包含“libssl.so”,则表示QT静态版本已经包含了OpenSSL支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值