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 installed3.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-releasePRETTY_NAMEUbuntu 22.04.5 LTSNAMEUbuntuVERSION_ID22.04VERSION22.04.5 LTS (Jammy Jellyfish)VERSION_CODENAMEjammyIDubuntuID_LIKEdebianHOME_URLhttps://www.ubuntu.com/SUPPORT_URLhttps://help.ubuntu.com/BUG_REPORT_URLhttps://bugs.launchpad.net/ubuntu/PRIVACY_POLICY_URLhttps://www.ubuntu.com/legal/terms-and-policies/privacy-policyUBUNTU_CODENAMEjammyBUILD_INFOtykjtykj-virtual-machine, 20260123_1432BUILD_NAMElb120_3588_ubuntu22.04_v1.0_20260123_1432#glibc 版本查询ldd --versionldd (Ubuntu GLIBC 2.35-0ubuntu3.12) 2.35Copyright (C) 2022 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; 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 CONFIGdebug ./ui_demo.pro make -j4make clean rm -f Makefile qmake CONFIGdebug ./video_demo.pro make -j4make clean 删除makefile上次生成的rm Makefile 删除旧的makefile文件qmake CONFIGdebug ./video_demo.pro 添加配置和编译路径【生成新的Makefile(debug)】make -j4 真正编译出RK3588可运行的程序# 修改源码后直接执行编译只编译改动的文件make -j4生成的可执行程序在pull-video/bin中(3)linux常用命令解压压缩包zip类型unzip 压缩包名.zipls 列出当前目录有什么tar类型tar -xvf video_demo_ffmpeg.tartar.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.sh4.缺少包下载1.缺少QtSQL报错私有头文件【qtbase已经下完】sudo apt-get install qtbase5-private-devqsql_mysql.cpp:57:10: fatal error: QtSql/private/qsqldriver_p.h: No such file or directory57 | #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-shapes3.Qt.locale在Linux未下载而显示英文# 安装Qt5中文语言包 sudo apt-get install qt5-translations-l10n