参考:Qt 编程指南

一个最小化工作示例:qt-minimal | GitHub

源文件

main.cpp

#include <QApplication>
#include <QLabel> int main(int argc, char *argv[]) {
QApplication app(argc, argv); QLabel label(QLabel::tr("Hello, Qt!"));
label.resize(200, 30);
label.setWindowTitle("First Qt App");
label.show(); return app.exec();
}

使用 QMake 构建 Qt 项目

创建一个 Qt 项目文件 (.pro 文件) :

qmake -project "QT+=widgets"

从 Qt 5 开始,QtWidgets 模块被从 QtGui 模块中分离且不会自动添加,因此这里手动添加 QtWidgets 模块。

该命令将扫描当前目录中的所有文件,然后生成对应的 .pro 文件。或者也可以手动创建一个:

MyQtProject.pro

QT += widgets

SOURCES += main.cpp

# 如果你有头文件或 UI 文件,也可以添加到这里。
# HEADERS += mainwindow.h
# FORMS += mainwindow.ui

通过 .pro 文件生成 Makefile:

qmake

通过 Makefile 编译项目:

make

参见:

使用 CMake 构建 Qt 项目

创建 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.16)

project(MyQtProject VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 REQUIRED COMPONENTS Widgets) qt_add_executable(MyQtProject main.cpp) target_link_libraries(MyQtProject PRIVATE Qt6::Widgets) set_target_properties(MyQtProject PROPERTIES
WIN32_EXECUTABLE ON
MACOSX_BUNDLE ON
)

生成和构建项目:

mkdir build && cd build
cmake ..
make

最终将生成 MyQtProject 可执行文件。

参见:

部署

使用 QMake 或 CMake 构建的 Qt 程序使用了 Qt 的动态链接库。为了使程序在没有安装 Qt 动态链接库的机器上也能运行,我们需要使用部署工具将这些动态链接库和程序一起打包发布。

Windows

CMake -static 编译 | CSDN

windeployqt MyQtProject.exe

在 Qt 6.5.0 上使用 windeployqt 会出现如下错误:

Cannot open .: Access is denied.

解决办法:

windeployqt --no-translations YOUR_QT_APP.exe

macOS

macdeployqt MyQtProject.app

Qt 项目在 MacOS 平台上面发布成可执行程序 .app | ifmet.cn

Troubleshooting

Could not find the Qt platform plugin "cocoa" in ""

解决方法:添加环境变量 QT_QPA_PLATFORM_PLUGIN_PATH

export QT_QPA_PLATFORM_PLUGIN_PATH="/opt/homebrew/opt/qt/share/qt/plugins"

参考:Qt could not find the platform plugin cocoa | Stack Overflow

编译 Qt 项目的更多相关文章

  1. Windows下使用命令行编译Qt项目(解决DLL丢失问题)

    一.前言 我之前用Qt做了个hello world,结果各种报错,一大堆DLL找不到,今天用命令行编译就通过了 二.准备工作 1.Visual Studio(有nmake就行) 2.Qt 3.把qma ...

  2. 关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误

    用Cmake讲Qt.VTK和ITK整合后,打开解决方案后添加新类时运行会出现“n个无法解析的外部命令”的错误. 原因是新建的类未能生成moc文件,解决办法是: 1.右键 要生成moc文件的.h文件,打 ...

  3. Hello World程序演示Qt项目的建立、编译、运行和发布

    一.Qt项目的建立 1.选择项目模板. 选择"文件-->新建文件或工程",在选择模板页面选择Qt C++项目中的"Qt Gui应用"一项,然后单击&quo ...

  4. Vs2012(Vs2013) 编译 64位 Qt (动态库), 并使用自编译Qt建立工程(悲催经历)。(含遗留问题)

    仅供参考. 体会:我个人此次编译不该使用Vs2013编译Qt. 使用以下程序: Qt : qt-opensource-windows-x86-msvc2012_64_opengl-5.2.1.exe ...

  5. 【Qt】命令行编译Qt程序(nmake)【转】

    简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和M ...

  6. Fedora15下搭建QT开发环境及编译QT

    看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...

  7. paip.c++ qt 项目工程互相引用的方法

    paip.c++ qt 项目工程互相引用的方法 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/ ...

  8. VS2008+Qt 项目目录

    1.项目开发环境:VS2008,QT4.7 2.项目的目录: 1)PETCT是解决方案名字 2)Bin目录存放所有动态链接库和执行档,包括自己的产出和第三方库,区分Release和Debug两个版本. ...

  9. 4、树莓派的中文:安装ftp,安装gcc,安装qt,编译qt程序,运行qt界面程序

    本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ1222698 1.安装FTP:sudo apt-get install vsftpd 2.配置FTP,修改,/etc/vsftpd.conf # ...

  10. linux(debian) arm-linux-g++ v4.5.1交叉编译 embedded arm 版本的QtWebkit (browser) 使用qt 4.8.6 版本 以及x64上编译qt

    最近需要做一个项目 在arm 架构的linux下 没有桌面环境的情况下拉起 有界面的浏览器使用. 考虑用qt 的界面和 qtwebikt 的库去实现这一系列操作. 本文参考: Qt移植到ARM Lin ...

随机推荐

  1. uCos 学习:0-有关概念

    先说一下UCOSIII:Micrium在2009年推出了UCOSIII,相对于之前的UCOSII版本,在性能上有了进一步的提升,主要是支持时间片轮调度,极短的关中断事件等. 可剥夺多任务管理: 什么是 ...

  2. NXP i.MX 8M Mini的视频开发案例分享 (下)

    本文主要介绍i.MX 8M Mini的视频开发案例,包含基于GStreamer的视频采集.编解码.算法处理.显示以及存储案例,GigE工业相机测试说明,H.265视频硬件解码功能演示说明等. 注:本案 ...

  3. 跟我一起学习和开发动态表单系统-后端用spring boot、mybatis实现方法(4)

    ## 动态表单系统:利用 Spring Boot 和 MyBatis 实现后端服务 在现代企业应用中,表单是数据收集和处理的核心部分.然而,传统的表单系统难以适应快速变化的需求.为了解决这个问题,我们 ...

  4. Sql Server 创建用户并限制权限

    创建登录名 使用sa或者Windows身份验证登录,[安全性]-[登录名],右键[新建登录名] 设置登录名属性 设置数据库权限 db owner --拥有数据库全部权限,包括删除数据库权限 db ac ...

  5. fpga是什么

    FPGA(Field Programmable Gate Array) 现场可编程门阵列

  6. 设置Docker容器里的时间

    启动容器时,添加环境变量 docer run -e TZ=Asia/Shanghai --rm myalpine date -e TZ=Asia/Shanghai  

  7. Idea 2020.1 编译SpringBoot项目Kotlin报错

    导读 今天公司有个项目莫名其妙的运行不起来,提示Kotlin版本兼容问题,网上找到解决方案后,整理下来. 错误信息 Error:Kotlin: Module was compiled with an ...

  8. jsbarcode 生成条形码,并将生成的条码保存至本地,附源码

    导读 以前生成条码都是外网网站上生成,因生产环境在内网中,上不了外网,只能在项目中生成相应规则,故将此方法整理下来. html <!DOCTYPE html> <html> & ...

  9. P2910

    #include<iostream> #include<utility> #include<vector> using namespace std; typedef ...

  10. 转载 | ofd转pdf最好用的软件,ofd文件如何转化成pdf?

    1.背景 需要将ofd转换为pdf 2.使用方法 使用taurusxin 开发的软件Ofd2Pdf.exe即可实现,软件版权归原作者所有.这里表示感谢! 3.下载地址 官网:https://githu ...