loading...
关于QT在linux_amd64_x86-64上的安装
发表于:2024-03-06 |
字数统计: 1.3k | 阅读时长: 5分钟 | 阅读量:

QT官方/镜像的下载地址

官网下载地址(下载速度非常慢,需要魔法)

国内镜像下载地址(已经全部失效)

页面下载(下载速度非常慢,需要魔法,且需要桌面显示,对linux云服务器不利)

选择该页面的archive/qt/5.12/5.12.x/single/qt-everywhere-src-5.12.8.tar.xz,并下载,推荐5.12.8版本

百度网盘下载地址

QT5.12.8_linux源码安装

bypy下载(可选)

  • bypy可以绑定百度网盘,并可以在百度网盘上下载程序

安装bypy

1
pip install bypy

输入下列代码,如果不在虚拟环境下,需要使用加入python3 -m,并根据提示绑定百度网盘,等待一段时间

1
bypy info # python3 -m bypy info

绑定成功后会出现如<图一>

图一

1
2
bypy downfile xxx #下载单个文件
bypy downdir xxx #下载单个文件夹

QT5.12.8安装

  • 依赖安装
    1
    2
    3
    4
    5
    sudo apt-get install libxcb-xfixes0-dev libxcb-util-dev
    sudo apt-get install libxcb-xinerama0
    sudo apt-get install build-essential libgl1-mesa-dev
    sudo apt-get install libxcb*
    sudo apt-get install libxkbcommon*
  • 下载qt-everywhere-src-5.12.8.tar.xz,自选放置路径,如/opt/qt5.12.8/内部。
  • 解压缩
    1
    sudo tar -xvf qt-everywhere-src-5.12.8.tar.xz
  • 终端进入QT源码文件夹,输入下指令,跳过一些不必要的模块(根据自己的需求)
    1
    ./configure -prefix /opt/qt5.12.8/qt5.12.8 -release -opensource -skip qtwayland -skip qtlocation -skip qtscript -skip qt3d -skip qtcanvas3d -skip datavis3d -skip qtvirtualkeyboard -platform linux-g++

    如果是linux的arm环境那么添加参数-platform <你的gcc编译器版本>,如-platform linux-aarch64-gnu-g++(能在/qtbase/mkspecs/下找到)
    如果是交叉编译那么添加参数-xplatform <你的目标平台gcc编译器版本>,-xplatform linux-aarch64-gnu-g++
    configure参数解析
    CSDN(粗略) https://blog.csdn.net/qq_37654240/article/details/109639331
    博客(较深) https://www.cnblogs.com/findumars/p/6254629.html
    -opensource表示使用开源版本,-confirm-license表示确认许可,-prefix表示安装路径

  • 以下文件夹均可当参数跳过,例如-skip qt3d
    图四

  • 等待一段时间,之后输入下列指令

    1
    make -j4 #表示使用4个线程进行编译,可以根据自己的cpu核心数进行调整

    并等待2小时+

  • 安装编译好的QT
    1
    sudo make install 

修正,报错/usr/bin/ld.gold: error: cannot find -lclip2tri 或者 /usr/bin/ld.gold: error: cannot find -lpoly2tri 或者 /usr/bin/ld.gold: error: cannot find -lclipper,这主要是因为qtlocation模块依赖这个,我们-sikp qtlocation,即可跳过该报错

1
./configure -prefix /opt/qt/qt5.12.8 -release -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -skip qt3d -skip qtcanvas3d -skip datavis3d -skip qtvirtualkeyboard -xcb-xlib -qt-xcb

出现报错 not find python,但是其实已经下载了python,如<图二>
图二
是因为没有建立映射关系,输入如下指令

1
2
sudo ln -s /usr/bin/python3 /usr/bin/python 
ls -l /usr/bin/python*

发现,已经有python的映射了<图三>
图三
报错 C++: fatal error: Killed signal terminated program cc1plus compilation terminated.
是虚拟机内存不足造成的。通过创建swap分区解决了这个问题

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建分区路径
sudo mkdir -p /var/cache/swap/
# 设置分区的大小
# bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=64
# 设置该目录权限
sudo chmod 0600 /var/cache/swap/swap0
# 创建SWAP文件
sudo mkswap /var/cache/swap/swap0
# 激活SWAP文件
sudo swapon /var/cache/swap/swap0
# 查看SWAP信息是否正确
sudo swapon -s

删除交换分区的命令

1
2
sudo swapoff /var/cache/swap/swap0
sudo rm /var/cache/swap/swap0

释放空间命令

1
2
3
sudo swapoff -a
#详细的用法:swapoff --help
#查看当前内存使用情况:free -m
  • 安装成功,没有任何error,图五
    图五
  • 将安装成功的qt添加至环境变量
    1
    sudo vim /etc/profile

    将下列代码添加至profile文件中

    1
    2
    3
    4
    export QTDIR=/opt/qt-5.12.5-install(你的qt安装目录)
    export PATH=$QTDIR/bin:$PATH
    export MANPATH=$QTDIR/man:$MANPATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

    然后退出,并输入如下代码,声明环境变量

    1
    source /etc/profile
  • 检验qt是否安装成功,输入
    1
    qmake -v

    输出图六,成功~
    图六

如果想看详细的输出问题

  • 打开环境变量配置文件
    1
    sudo vim ~/.bashrc

    末尾添加如下代码

    1
    export QT_DEBUG_PLUGINS=1
  • 启动环境变量
    1
    source ~/.bashrc

如何进行编译,生成linux可执行文件

  • 使用qmake xxx.pro(你的.pro文件)生成Makefile文件
    1
    qmake xxx.pro
  • 使用make生成可执行文件
    1
    make
  • 执行可执行文件
    1
    ./xxx

完成

  • 如果想查看代码行数
    1
    (Get-ChildItem -Recurse -File | Get-Content | Measure-Object -Line).Lines
上一篇:
关于QT在linux_arm64上的安装
下一篇:
槽函数