当前位置: 首页 > news >正文

linux编译qt项目

ssh连接上板子后:

VScode配置SSH-CSDN博客

目录

2.检查工具链

qmake:

#查看文件命令的输出【位】

#查看发行版信息

#glibc 版本查询

*对应的mysql的linux-arm版本

3.qmake和qt代码修改

(1)linux需要在main.cpp开头添加:

(2)qmake编译命令

编译:

(3)linux常用命令

解压压缩包:

zip类型

tar.xz类型

复制:

新建:

删除:

新建各种后缀文件:

修改文件名称后缀:

检查文件格式:

4.缺少包下载:

1.缺少QtSQL报错私有头文件【qtbase已经下完】

2.缺少module "QtQuick.Shapes" is not installed

3.Qt.locale在Linux未下载而显示英文


#指定编译产生的文件分门别类放到对应目录 MOC_DIR = temp/moc RCC_DIR = temp/rcc UI_DIR = temp/ui OBJECTS_DIR = temp/obj #指定编译生成的可执行文件放到源码上一级目录下的bin目录 !android:!ios { DESTDIR = $$PWD/../bin }

例:

QT += core gui network sql quick quickwidgets qml quickcontrols2 virtualkeyboard # xlsx greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat DEFINES += ENABLE_UI #指定编译产生的文件分门别类放到对应目录 MOC_DIR = temp/moc RCC_DIR = temp/rcc UI_DIR = temp/ui OBJECTS_DIR = temp/obj #指定编译生成的可执行文件放到源码上一级目录下的bin目录 !android:!ios { DESTDIR = $$PWD/../bin } QMAKE_CXXFLAGS += -frtti TEMPLATE = app TARGET = ui_demo # 包含目录 INCLUDEPATH += $$PWD # 引入模块 include ($$PWD/core_helper/core_helper.pri) include ($$PWD/core_bridge/core_bridge.pri) include ($$PWD/core_config/core_config.pri) include ($$PWD/core_mysql/core_mysql.pri) #视频布局pri导入 include ($$PWD/core_layout/core_layout.pri) # include ($$PWD/app/app.pri) # 引入QXlsx include ($$PWD/3rdparty/QXlsx/QXlsx.pri) #如果编译了qmake 里的Qxlsx驱动,则可以直接 QT += xlsx # 资源文件 RESOURCES += \ images.qrc \ qml.qrc \ shader.qrc # 源文件 SOURCES += \ main.cpp # QML文件 DISTFILES += \ uiitem/Test.qml \ uiitem/TestBtn.qml \ uiitem/ConfigState.qml \ uiitem/ReusableVirtualKeyboard.qml # Windows平台特定配置 win32 { DEFINES += _WIN32 CONFIG += console } # Linux平台特定配置 linux { DEFINES += _LINUX }

2.检查工具链

qmake:

找出qmake的路径:

which qmake
# 系统 Qt 通常的目录结构 /usr/ ├── bin/ │ └── qmake -> /usr/lib/aarch64-linux-gnu/qt5/bin/qmake (符号链接) ├── lib/aarch64-linux-gnu/ │ ├── libQt5Core.so.5 -> libQt5Core.so.5.15.3 (版本链接) │ ├── libQt5Sql.so.5 -> libQt5Sql.so.5.15.3 │ └── qt5/ │ ├── bin/qmake (实际文件) │ └── plugins/ │ └── sqldrivers/ (驱动目录) └── include/aarch64-linux-gnu/qt5/ (头文件) # 查看具体链接 ls -la /usr/bin/qmake ls -la /usr/lib/aarch64-linux-gnu/libQt5* ls -la /usr/lib/aarch64-linux-gnu/qt5/plugins/
#查看文件命令的输出【位】
file /bin/ls

/bin/ls: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=9c2ba31c6cee8b4ebc72a917073e1eea6f2dd7ef, for GNU/Linux 3.7.0, stripped

#查看发行版信息
cat /etc/os-release

PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
BUILD_INFO="tykj@tykj-virtual-machine, 20260123_1432"
BUILD_NAME="lb120_3588_ubuntu22.04_v1.0_20260123_1432"

#glibc 版本查询
ldd --version

ldd (Ubuntu GLIBC 2.35-0ubuntu3.12) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

*对应的mysql的linux-arm版本

mysql-8.0.34-linux-glibc2.28-aarch64.tar.gz

【免费】mysql-8.0.34-linux-glibc2.28-aarch64.tar.gz资源-CSDN下载

3.qmake和qt代码修改

(1)linux需要在main.cpp开头添加:

qputenv("QT_QPA_PLATFORM", "eglfs"); qputenv("QT_OPENGL", "es2"); qputenv("QT_QPA_EGLFS_INTEGRATION", "eglfs_kms");

(2)qmake编译命令

编译:
make clean && rm -f Makefile && qmake CONFIG+=debug ./ui_demo.pro && make -j4
make clean && rm -f Makefile && qmake CONFIG+=debug ./video_demo.pro && make -j4

make clean 删除makefile上次生成的

rm Makefile 删除旧的makefile文件

qmake CONFIG+=debug ./video_demo.pro 添加配置和编译路径【生成新的Makefile(debug)】

make -j4 真正编译出RK3588可运行的程序

# 修改源码后,直接执行编译(只编译改动的文件):

make -j4

生成的可执行程序在pull-video/bin中

(3)linux常用命令

解压压缩包:
zip类型

unzip 压缩包名.zip

ls 列出当前目录有什么

tar类型
tar -xvf video_demo_ffmpeg.tar
tar.xz类型
tar -xJf qtbase-everywhere-src-5.15.2.tar.xz
复制:

vscode右键复制路径,复制到目录路径下 cd 路径

cp -i video_demo /data/bin/
cp -i /data/mjt/v4_6_2two-waybinding/pull-video/bin/video_demo /data/bin/
cp -i /data/134/pull-video/bin/video_demo /data/bin/
新建:

直接深层创建,没有文件夹直接新建

mkdir -p /data/mjt/Mysql/mysql-8.0.34/data/mysql
删除:
rm -f 路径(/打头为绝对)
新建各种后缀文件:
vim 路径/文件.后缀 【自定义】

按住ESC :wq 保存退出

修改文件名称后缀:
mv a.txt b.txt # 只改名字 mv 1.jpg 1.png # 只改后缀 mv test.log old.log # 名字后缀一起改
检查文件格式:
file -i /data/mjt/Mysql/Importsql/db/log_db.sql
.sh脚本:
执行脚本
./copy.sh
授权
chmod +x copy.sh
执行
./copy.sh
取消授权
chmod -x copy.sh

4.缺少包下载:

1.缺少QtSQL报错私有头文件【qtbase已经下完】

sudo apt-get install qtbase5-private-dev

qsql_mysql.cpp:57:10: fatal error: QtSql/private/qsqldriver_p.h: No such file or directory
57 | #include <QtSql/private/qsqldriver_p.h>
|

2.缺少module "QtQuick.Shapes" is not installed

# Debian/Ubuntu 系统(ARM 架构) sudo apt-get update sudo apt-get install qtquickcontrols2-5-dev qml-module-qtquick-shapes

3.Qt.locale在Linux未下载而显示英文

# 安装Qt5中文语言包 sudo apt-get install qt5-translations-l10n
http://www.jsqmd.com/news/584490/

相关文章:

  • 2026年评价高的滑台直线模组用户口碑推荐厂家 - 品牌宣传支持者
  • Nature Microbiology|质粒驱动的抗菌素耐药性进化:插入序列介导的基因失活新机制
  • 使用PHP和LibreOffice实现高效Word转PDF的完整方案
  • lingbot-depth-pretrain-vitl-14多场景落地:AR实时遮挡、3D重建、工业检测一文详解
  • 中文版Charles抓包工具,详细安装教程(附安装包)
  • YOLOv8n-face人脸检测架构:6MB模型实现92%精度与25ms延迟的企业级方案
  • 阶跃星辰(Step):前微软小冰之父的 AI 豪赌
  • 美团LongCat-AudioDiT:革新波形潜空间的TTS模型
  • Qwen3.5-9B快速上手:3步启动WebUI(supervisorctl restart)超详细步骤
  • 智能音乐库重命名大师:自动识别音频元数据,支持模板自定义与序号补零,批量规范化音乐文件名
  • java 1.8 安装配置教程,详细图文(附安装包)
  • 【技术干货】Gemma 4 上手深度指南:本地多模态大模型的新基线
  • 51单片机第二章
  • Klipper固件全攻略:从配置到优化解决3D打印核心难题
  • OpenClaw+千问3.5-9B自动化:微信公众号文章定时发布
  • 线程池项目(1)
  • OpenClaw多通道告警:SecGPT-14B检测结果同步邮件与钉钉
  • 创建基础数据表后数据无法保存怎么排查_权限设置与回滚处理
  • 一个工科生的电机控制实验笔记
  • C++ 类和对象(下)核心总结
  • 如何用共享线程处理跨页面的数据同步冲突与锁定机制
  • OpenClaw备份与恢复:千问3.5-9B配置迁移完整流程
  • 月之暗面 Kimi 进阶:从长文本到 AI 搜索——最懂中国用户的AI助手
  • PregelProtocol——定义了“LangChain执行体“最小功能集
  • 【Web3】智能合约质量保障工程:从单元测试到 Gas 效能优化
  • Manus:中国AI Agent的破圈之作
  • LN2266 超小型 低电压启动 PWM 控制 升压 DC/DC 电压调整器
  • 【Java Stream 流:高效、优雅的集合操作 ✨】
  • 内网渗透零基础入门教程!小白也能轻松搞懂内网渗透基础知识点
  • MongoDB GridFS的fs.files集合越来越大怎么优化