✅ 一、目录结构示例
MyApp/
├── CMakeLists.txt
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
├── mainwindow.ui
└── platform/
├── ios/
└── android/
✅ 二、顶层 CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(MyApp LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# Qt 6 查找
find_package(Qt6 REQUIRED COMPONENTS Widgets)
add_executable(MyApp
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)
target_link_libraries(MyApp PRIVATE Qt6::Widgets)
# 平台特定设置
if(APPLE)
set_target_properties(MyApp PROPERTIES MACOSX_BUNDLE TRUE)
elseif(ANDROID)
set_target_properties(MyApp PROPERTIES ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/platform/android")
endif()
✅ 三、主程序 main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[]) {
#if defined(Q_OS_ANDROID)
QGuiApplication app(argc, argv);
#else
QApplication app(argc, argv);
#endif
MainWindow w;
w.show();
return app.exec();
}
✅ 四、UI 代码(mainwindow.h
/ mainwindow.cpp
)
简单的窗口类,内容略,可参考 Qt Designer。
✅ 五、构建和部署平台支持说明
✅ macOS / Linux / Windows
使用 Qt 官方提供的 CMake 支持,直接构建:
cmake -B build -DCMAKE_PREFIX_PATH=/path/to/Qt6
cmake --build build
✅ Android
安装 Qt for Android 后:
cmake -B build_android -DCMAKE_TOOLCHAIN_FILE=$Qt6_ANDROID/armv7/lib/cmake/Qt6/qt.toolchain.cmake
cmake --build build_android
✅ iOS
确保 Xcode 中安装 Qt6 iOS 工具链:
cmake -B build_ios -GXcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_PREFIX_PATH=/path/to/Qt6
cmake --build build_ios --config Release
然后用 Xcode 打开 .xcodeproj
进行签名和部署。
✅ 六、平台兼容技巧建议
技巧 | 建议 |
---|---|
条件编译 | 使用 #ifdef Q_OS_WIN / Q_OS_MAC / Q_OS_ANDROID / Q_OS_IOS 控制平台特有代码 |
图片资源 | 使用 Qt 的 qrc 机制统一打包 |
输入输出 | 尽量使用 Qt 提供的 QFile、QDir、QStandardPaths 等跨平台封装类 |
构建工具 | 尽量统一使用 CMake + Ninja 管理构建 |
✅ 七、Qt 多平台支持说明
平台 | 支持版本 | 特别说明 |
---|---|---|
Windows | ✅ MSVC / MinGW | 无需额外配置 |
macOS | ✅ Clang | 可打包为 .app |
Linux | ✅ GCC | 建议静态编译或 AppImage |
Android | ✅ arm64-v8a | Qt 自带 Gradle 项目支持 |
iOS | ✅ arm64 | Xcode 打包签名 |