1.使用Clion开发Qt Windows应用和嵌入式Linux应用
要在 CLion 中同时兼顾Windows 上的 Qt 桌面应用开发和嵌入式 Linux 应用开发,我们需要配置两套不同的开发环境。
这通常意味着你需要在 Windows 上配置本地的 MinGW/MSVC + Qt 环境,同时配置远程的 Linux 交叉编译环境。
下面我为你整理了详细的配置步骤:
💻 第一部分:CLion 配置 Windows Qt 开发环境
要在 Windows 上用 CLion 开发 Qt 应用,核心在于正确配置CMake和MinGW/MSVC 工具链,并关联 Qt 的路径。
1. 准备工作
- 安装 CLion:直接安装即可。
- 安装 Qt:建议使用在线安装器,安装时务必勾选MinGW版本(如果你用 MinGW 编译器)或对应的 MSVC 版本。
- 环境变量:建议将 Qt 的
bin目录(例如C:\Qt\6.6.2\mingw_64\bin)和 MinGW 的bin目录添加到系统的PATH环境变量中,这样 CLion 能自动识别。
2. 配置 Toolchain(工具链)打开 CLion,进入文件->设置->构建、执行、部署->工具链。
- Name:自定义,如
MinGW_Qt。 - CMake:选择你安装的 CMake 路径。
- Build Tools:选择
MinGW Makefiles。 - C Compiler:指向
gcc.exe。 - C++ Compiler:指向
g++.exe。 - Debugger:指向
gdb.exe(通常在 MinGW 的bin目录下)。
3. 创建 Qt 项目
- 新建项目时,选择
Qt Widgets Executable或Qt Console Executable。 - 关键步骤:在
Qt CMake 前缀路径中,选择你安装的 Qt 版本目录(例如C:\Qt\6.6.2\mingw_64)。注意:不要选到bin文件夹,选上一级即可。 - 选择 C++ 语言标准(如 C++17)。
4. 配置外部工具(Qt Designer 和 UIC)为了让.ui文件能直接在 CLion 中编辑和编译,需要配置外部工具:
- Qt Designer:
- Program:
C:\Qt\6.6.2\mingw_64\bin\designer.exe(路径根据实际修改)。 - Arguments:
$FileName$。 - Working directory:
$FileDir$。
- Program:
- Qt UIC(用于将 .ui 转换为 .h):
- Program:
C:\Qt\6.6.2\mingw_64\bin\uic.exe。 - Arguments:
$FileName$ -o ui_$FileNameWithoutExtension$.h。 - Working directory:
$ProjectFileDir$。
- Program:
5. 运行配置如果控制台不输出qDebug()信息,可以在运行/调试配置中添加环境变量:
- 变量名:
QT_ASSUME_STDERR_HAS_CONSOLE - 值:
1。
📦 第二部分:CLion 配置 嵌入式 Linux 开发环境
对于嵌入式 Linux(如 ARM 开发板),通常采用远程开发模式:在 Windows 上写代码,通过 SSH 连接到 Linux 服务器或开发板进行编译和调试。
1. 准备工作(远程端)
- Linux 主机:确保你的 Linux 机器(或开发板)已开启 SSH 服务。
- 交叉编译工具链:在 Linux 端安装好对应的交叉编译器(如
arm-linux-gnueabihf-gcc)。 - gdbserver:在 Linux 端安装
gdbserver,用于远程调试。
2. 配置远程连接 (Deployment)进入文件->设置->构建、执行、部署->部署。
- 点击
+号,选择SFTP。 - Name:自定义(如
My_ARM_Board)。 - SFTP host:输入 Linux 主机的 IP 地址。
- Port:默认 22。
- Root path:远程 Linux 的根路径(如
/home/user/project)。 - 在
映射选项卡中,设置本地路径和远程路径的对应关系。
3. 配置远程 Toolchain在工具链设置中,点击+号,选择Remote Host。
- Name:如
ARM_Cross_Toolchain。 - Environment:选择刚才配置的
My_ARM_Board。 - CMake:选择
Remote,并指定远程 Linux 上的 CMake 路径(通常自动检测)。 - C Compiler / C++ Compiler:这里需要指定交叉编译器的路径。例如:
- C:
/usr/local/arm/gcc-linaro/bin/arm-linux-gnueabihf-gcc - C++:
/usr/local/arm/gcc-linaro/bin/arm-linux-gnueabihf-g++
- C:
- Debugger:选择远程的
gdb,或者使用gdbserver。
4. CMakeLists.txt 配置在嵌入式开发中,通常需要在CMakeLists.txt中指定交叉编译参数。你可以通过设置环境变量或在 CMake 配置中传入参数来实现。
5. 远程调试 (Debug)
- 在 CLion 中创建运行配置,选择
Remote Debug。 - 设置目标主机 IP 和端口(
gdbserver监听的端口,如:2345)。 - 设置可执行文件在远程的路径。
- 启动调试时,CLion 会通过 SSH 连接
gdbserver,让你可以在 Windows 端的 IDE 上进行断点调试。
📊 总结对比表
为了让你更直观地管理这两个环境,我为你总结了配置差异:
| 功能模块 | Windows Qt 开发 | 嵌入式 Linux 开发 |
|---|---|---|
| 核心模式 | 本地开发 (Native) | 远程开发 (Remote/SSH) |
| 工具链类型 | MinGW 或 MSVC | 交叉编译工具链 (Cross Compiler) |
| CMake 生成器 | MinGW Makefiles / Ninja | Unix Makefiles (远程) |
| 调试方式 | 本地 GDB 调试 | 远程 GDB Server |
| 关键配置点 | Qt CMake 前缀路径 (Qt SDK 路径) | 交叉编译器路径 (CC/CXX) |
| 文件同步 | 无需同步 | 自动通过 SFTP/RSync 同步 |
💡 建议
如果你的嵌入式 Linux 开发板性能较弱,建议使用一台性能较好的Linux 服务器作为中间编译机,配置 CLion 连接这台服务器进行编译,然后将生成的二进制文件下载到开发板运行,这样可以大幅提升编译速度。
2.Clion项目
在 CLion 中管理Qt 项目(无论是 Windows 桌面应用还是嵌入式 Linux 应用),核心在于正确组织CMakeLists.txt和项目结构。下面我为你提供一个清晰、可复用的 CLion 项目配置模板和最佳实践。
✅ 一、CLion Qt 项目基本结构(推荐)
MyQtProject/ ├── CMakeLists.txt ← 主 CMake 配置 ├── src/ │ ├── main.cpp │ ├── mainwindow.cpp │ └── mainwindow.h ├── ui/ │ └── mainwindow.ui ← Qt Designer 文件 ├── resources/ │ └── app.qrc ← 资源文件(图标、图片等) └── build/ ← 构建目录(建议 .gitignore)💡 CLion 默认会在项目根目录外创建
cmake-build-*目录,但你也可以手动指定build目录。
✅ 二、通用 CMakeLists.txt 模板(支持 Qt 6 / Qt 5)
cmake_minimum_required(VERSION 3.16) # 项目名称和语言 project(MyQtApp VERSION 1.0 LANGUAGES CXX) # 设置 C++ 标准 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # ============================== # Qt 配置(关键!) # ============================== # 自动查找 Qt 安装路径(需设置 CMAKE_PREFIX_PATH) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Core Gui) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Core Gui) # 如果使用其他模块(如 Network, Sql, SerialPort 等),添加到 COMPONENTS # find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Core Gui Network SerialPort) # ============================== # 源文件与 UI 文件 # ============================== set(SOURCES src/main.cpp src/mainwindow.cpp ) set(HEADERS src/mainwindow.h ) set(UI_FILES ui/mainwindow.ui ) set(QRC_FILES resources/app.qrc ) # ============================== # 自动生成 moc、uic、rcc 文件 # ============================== # Qt 自动处理:只要启用了 AUTOMOC/AUTOUIC/AUTORCC,就不需要手动调用 uic/moc/rcc set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) # ============================== # 创建可执行文件 # ============================== add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${UI_FILES} ${QRC_FILES} ) # 链接 Qt 库 target_link_libraries(${PROJECT_NAME} Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui ) # 可选:设置输出目录(Windows 下方便调试) if(WIN32) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) endif()✅ 三、CLion 项目配置要点
1.首次打开项目时设置 CMake 选项
当 CLion 加载项目时,会提示你配置 CMake。此时必须指定Qt 的安装路径:
- 在CMake options中添加:
-DCMAKE_PREFIX_PATH="C:/Qt/6.6.2/mingw_64"路径根据你的 Qt 安装位置修改(Linux 下类似
/opt/Qt/6.6.2/gcc_64)。
2.切换构建类型(Debug / Release)
- 在 CLion 右上角选择构建类型。
- Debug 模式便于断点调试;Release 模式用于最终部署。
3.多平台支持:使用 CMake Presets(高级技巧)
你可以在项目根目录下创建CMakePresets.json,分别定义Windows Qt和嵌入式 Linux的构建预设:
{ "version": 3, "configurePresets": [ { "name": "windows-qt", "displayName": "Windows Qt (MinGW)", "generator": "MinGW Makefiles", "cacheVariables": { "CMAKE_PREFIX_PATH": "C:/Qt/6.6.2/mingw_64" }, "environment": { "PATH": "C:/Qt/6.6.2/mingw_64/bin;..." } }, { "name": "linux-arm", "displayName": "Embedded Linux (ARM)", "toolchainFile": "/path/to/arm-toolchain.cmake", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } } ] }CLion 会自动识别
CMakePresets.json,让你一键切换构建环境。
✅ 四、嵌入式 Linux 项目的特殊处理
如果你的目标是嵌入式 Linux(如 ARM 开发板),除了远程工具链配置外,还需注意:
1.禁用 GUI(如果无屏幕)
若设备无图形界面,不要链接Widgets或Gui,改用QtCore即可:
find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(app Qt6::Core)2.静态链接(可选)
嵌入式系统常需静态链接以减少依赖:
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") set(BUILD_SHARED_LIBS OFF)3.交叉编译工具链文件示例 (arm-toolchain.cmake)
set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_C_COMPILER /usr/local/arm/bin/arm-linux-gnueabihf-gcc) set(CMAKE_CXX_COMPILER /usr/local/arm/bin/arm-linux-gnueabihf-g++) set(CMAKE_FIND_ROOT_PATH /usr/local/arm/sysroot) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)然后在 CMake 配置中指定:
-DCMAKE_TOOLCHAIN_FILE=arm-toolchain.cmake✅ 五、常见问题解决
| 问题 | 解决方案 |
|---|---|
Qt not found | 检查CMAKE_PREFIX_PATH是否指向 Qt 安装目录(不含/bin) |
.ui文件不自动生成头文件 | 确保CMAKE_AUTOUIC ON,且.ui文件已加入add_executable() |
| 调试时无控制台输出 | 添加环境变量QT_ASSUME_STDERR_HAS_CONSOLE=1 |
| 远程构建失败 | 检查 SSH 权限、路径映射、交叉编译器是否安装 |
🎯 总结
- 使用标准 CMake + AUTOMOC/AUTOUIC是 CLion 开发 Qt 项目的最佳方式。
- Windows Qt:本地 MinGW/MSVC + Qt SDK。
- 嵌入式 Linux:远程工具链 + 交叉编译 + CMake 工具链文件。
- 利用CMakePresets.json管理多平台构建配置,提升开发效率。
3.CLion
CLion是由JetBrains 公司开发的一款跨平台的 C 和 C++ 集成开发环境(IDE)。
🔍 一、CLion 的核心定位
- 语言支持:主要面向C、C++,也支持CMake、Python(辅助脚本)、Shell、CUDA、Objective-C等。
- 平台支持:可在Windows、macOS、Linux上运行。
- 构建系统集成:原生深度集成CMake(是其默认且推荐的项目模型),同时也支持 Makefile、Gradle 等(需插件或配置)。
- 智能功能:基于 JetBrains 强大的代码分析引擎,提供:
- 智能代码补全(IntelliSense)
- 实时错误检查
- 重构(重命名、提取函数等)
- 调试器集成(GDB/LLDB)
- 单元测试支持(Google Test、Catch2 等)
💡 简单说:CLion = C/C++ 版的 IntelliJ IDEA / PyCharm,专为现代 C++ 开发设计。
🧩 二、CLion 与 Qt 开发的关系
CLion本身不是 Qt 官方 IDE(Qt 官方 IDE 是Qt Creator),但它可以通过以下方式高效开发 Qt 应用:
| 功能 | CLion 支持情况 |
|---|---|
| 使用 Qt 库开发 GUI/控制台程序 | ✅ 完全支持(通过 CMake + Qt SDK) |
编辑.ui文件(Qt Designer) | ⚠️ 需手动配置外部工具调用designer.exe |
自动生成moc/uic/rcc | ✅ 通过CMAKE_AUTOMOC等自动处理 |
| 调试 Qt 程序 | ✅ 支持 GDB/LLDB 调试,可设断点、查看变量 |
| 跨平台 Qt 开发 | ✅ Windows / Linux / macOS 均可 |
✅优势:如果你习惯 JetBrains 系列 IDE(如 PyCharm、WebStorm),CLion 的快捷键、UI、智能提示会非常熟悉。
❌劣势:对 Qt 的集成不如 Qt Creator 深度(例如信号槽可视化连接、Qt Quick 预览较弱)。
🛠️ 三、CLion 的典型使用场景
- 跨平台 C++ 项目开发(如游戏、引擎、工具链)
- 嵌入式 Linux 应用开发(通过远程 SSH + 交叉编译)
- 算法/竞赛编程(快速创建、调试 C++ 程序)
- 与 Qt 结合开发桌面应用(尤其适合偏好 CMake 的团队)
- ROS(机器人操作系统)开发(社区广泛使用 CLion)
🆚 四、CLion vs Qt Creator 对比
| 特性 | CLion | Qt Creator |
|---|---|---|
| 所属公司 | JetBrains | The Qt Company |
| 核心构建系统 | CMake(首选) | qmake / CMake / Qbs |
| Qt 集成深度 | 中等(需配置) | 极高(原生支持) |
| 智能代码分析 | ⭐⭐⭐⭐⭐(强) | ⭐⭐⭐(够用) |
| 调试体验 | 优秀(GDB/LLDB) | 优秀(内置调试器) |
| 跨平台能力 | 强 | 强 |
| 许可证 | 商业软件(学生免费,30天试用) | 开源版免费(LGPL),商业版收费 |
| 插件生态 | JetBrains 插件市场 | Qt 插件较少 |
✅ 如果你重度依赖 Qt 生态(如 QML、Qt Quick、Qt Designer 可视化),选Qt Creator。
✅ 如果你偏好 CMake、需要强大 C++ 分析、或做嵌入式/非 GUI 项目,选CLion。
📌 总结一句话:
CLion 是一款现代化、智能、跨平台的 C/C++ IDE,虽非 Qt 官方工具,但通过 CMake 可高效开发 Qt 应用,尤其适合熟悉 JetBrains 生态或需要多平台/嵌入式支持的开发者。