macOS 安装 Qt 遇到的问题:
Qt 5.14.X 版本及以前版本的UI 在 macOS Big Sur 不能够正常运行,20年8月发行的 Qt 5.15.1 以后的版本在 macOS Big Sur 下是可以正常运行的。所以使用 macOS Big Sur 的小伙伴可以选择安装 Qt 5.15.1 或者之后更新的版本。
新版的 Qt 不再支持离线安装,需要下载 online 安装包进行安装,或者使用 homebrew 安装,下面介绍 online 安装方式。
一、下载 QtCreator online 安装包
下载地址:https://download.qt.io/archive/online_installers/4.0/
选择一个 macOS online 安装包(我选择的是 qt-unified-mac-x64-4.0.0-online.dmg):
1、安装需要先登录 Qt 账号(没有账号需要注册一个):
2、勾选同意条款,点击继续:
3、点击继续,速度有点慢,需要等待片刻(如果失败可以尝试翻墙后返回重试):
4、任选一种,点击继续:
5、设置 Qt 安装路径(安装路径不能有中文字符),选择安装方式:
6、选择 Qt 版本和插件,点击继续(Sources是源码,不看源码可以不勾选):
7、同意协议,点击继续:
8、点击安装,完成等待安装:
9 、安装完成,点击Done,启动 Qt:
二、创建 QtCreator 工程
1、打开 Qt,选择【菜单栏】文件 -> 新建文件或项目(⌘ N):
2、Application -> Qt Widgets Application -> Choose… :
3、设置项目名称和项目保存路径,点击下一步:
4、Build System 选择 qmake,点击下一步:
5、Qt 会默认创建一个MainWindow,点击下一步:
6、直接下一步:
7、选择 clang 编译器,点击下一步:
8、直接点击完成:
9、点击运行,出现 MainWindow 说明工程创建成功。
三、在 Qt 中引入 FFmpeg
已经成功创建了一个名称为 01_FFmepgExample 的项目,接下来介绍一下如何在这个工程中引用 FFmpeg(如果没有安装 FFmpeg,先下载安装 FFmpeg)。
1、01_FFmepgExample 工程目录结构如下:
$ tree
.
|____01_FFmpegExample.pro
|____mainwindow.h
|____01_FFmpegExample.pro.user
|____01_FFmpegExample.pro.autosave
|____mainwindow.ui
|____mainwindow.cpp
|____main.cpp
2、在 Qt 中双击打开 01_FFmpegExample.pro 文件,在 01_FFmpegExample.pro 文件后面添加 FFmpeg 头文件和动态链接库(我本地的 FFmpeg 安装位置: /usr/local/ffmpeg):
# 设置 FFmpeg 头文件的位置
INCLUDEPATH += -I /usr/local/ffmpeg/include
# 设置 FFmpeg 库的位置 -L:搜索路径 -l:link库
# 需要去掉库名称前面 lib 三个字符,去掉扩展名
# 默认优先链接动态库
LIBS += -L /usr/local/ffmpeg/lib -lavcodec \
-lavdevice \
-lavfilter \
-lavformat \
-lavutil \
-lswresample \
-lswscale
3、打开 main.cpp 导入头文件 #include <libavcodec/avcodec.h>:
// main.cpp
#include "mainwindow.h"
#include <QApplication>
// 在 Qt 中打印不能使用 C++ 标准输出
#include <QDebug>
// FFmpeg 是 C 语言编写的,C++ 不能直接导入 C 语言函数
extern "C" {
#include <libavcodec/avcodec.h>
}
int main(int argc, char *argv[])
{
// 打印 FFmpeg 版本号
qDebug() << av_version_info();
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
运行输出结果:
21:57:27: Starting /Users/mac/Desktop/QtWorkSpace/build-01_FFmpegExample-Desktop_Qt_6_0_2_clang_64bit-Debug/01_FFmpegExample.app/Contents/MacOS/01_FFmpegExample ...
4.3.2
Qt 工程引用 FFmpeg 成功!