CLion怎么开发Linux嵌入式项目

老晨吖_8972

老晨吖_8972

2026-09-10

209人浏览

原创

clion可高效支持linux嵌入式应用层开发,需正确配置wsl2/ssh工具链、手动指定交叉编译器、使用cmake工具链文件、gdbserver远程调试,并显式声明系统头文件路径。

clion怎么开发linux嵌入式项目

CLion 本身不直接支持嵌入式裸机或 Linux 内核模块开发,但它能高效支撑 Linux 嵌入式应用层开发(即运行在目标板 Linux 系统上的用户态程序),关键在于工具链和构建环境的正确绑定。

CLion 连接 WSL2 或远程 Linux 开发机

本地 Windows 上用 CLion 开发嵌入式 Linux 应用,最稳的路径是走 WSL2(非虚拟机)或 SSH 远程开发。WSL2 提供完整 Linux 用户空间,arm-linux-gnueabihf-gcccmakegdb 全部可原生安装;SSH 方式则把编译、调试全部交给真实开发板或服务器执行。

  • WSL2 启动后必须用管理员权限运行 Ubuntu(否则 USB 设备、OpenOCD 等可能无权访问)
  • CLion 的 Toolchains 设置里选 “WSL” 或 “SSH Configurations”,它会自动探测 gcccmakegdb 路径,但交叉编译器需手动指定:/usr/bin/arm-linux-gnueabihf-gcc
  • 远程模式下,CMake 构建目录必须设为远程路径(如 /home/user/project/build),本地只存源码
  • 别依赖 CLion 自带的 MinGW 工具链——那是给 Windows 本地编译用的,对嵌入式 Linux 无效

交叉编译工具链必须手动配置 CMake

CLion 默认用 host 编译器(x86_64-linux-gnu-gcc),编译出来的二进制跑不到 ARM 板上。必须显式告诉 CMake 使用交叉工具链,靠 Toolchain 配置只能解决部分问题,真正生效的是 CMake 的 CMAKE_TOOLCHAIN_FILE 或命令行参数。

Linux Journey
Linux Journey

当用户想学习Linux基础、命令行、文件系统等时,在LabEx查找并推荐免费的Linux Journey课程。

下载
  • 推荐方式:在项目根目录新建 arm-linux.cmake,内容包含 set(CMAKE_SYSTEM_NAME Linux)set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
  • CLion 的 CMake 设置页中,“CMake options” 填入 -DCMAKE_TOOLCHAIN_FILE=arm-linux.cmake
  • 如果用 find_package(Threads)find_package(Boost),确保目标系统已装对应库的 -dev 包(如 libboost-thread-dev:armhf),否则链接失败
  • 误用 set(CMAKE_CXX_STANDARD 17) 可能触发交叉编译器不支持的特性,建议先用 arm-linux-gnueabihf-g++ --version 查清 GCC 版本再定标准

调试时 GDB server 必须在目标板运行

CLion 的图形化调试依赖 GDB 客户端(本地)与 GDB server(远程)通信。它不支持直接烧写固件或仿真 MCU,但可以 attach 到正在运行的进程,或 launch 一个新进程并打断点。

  • 目标板上需运行 gdbserver :2345 ./myapp,本地 CLion 的 Run Configuration 中 Debugger 选 “GDB Remote Debug”,Host 填板子 IP,Port 填 2345
  • 若提示 “Connection refused”,先确认板子防火墙是否放行该端口:ufw allow 2345
  • 符号表必须和目标板二进制完全一致——本地编译时加 -g,且不要 strip;远程部署时保留 .debug_* 段或单独传 .debug 文件
  • CLion 不支持 OpenOCD + GDB 联调裸机程序(如 STM32),那属于另一套嵌入式开发流程,和 Linux 应用开发无关

USB 设备权限与 OpenOCD 烧录不是 CLion 的职责

CLion 是 IDE,不是烧录工具。如果你需要从 CLion 一键下载到开发板 Flash,得靠外部脚本或插件桥接,但绝大多数 Linux 嵌入式项目根本不需要这步——应用层程序直接 scp 或 NFS 挂载即可运行。

  • 想让板子识别 ST-Link 或 J-Link,需在 WSL2 或远程主机上配置 udev 规则,并将用户加入 dialout 组:sudo usermod -a -G dialout $USER
  • OpenOCD 在 Linux 嵌入式开发中仅用于调试内核模块或 bare-metal 固件,用户态应用调试请用 gdbserver
  • CLion 的 “Upload file” 功能很弱,不如写个 rsync 脚本绑定到 Build 后动作里更可靠
  • 别试图在 CLion 里配置 arm-none-eabi-gcc——那是给 Cortex-M 用的,Linux 应用必须用 arm-linux-gnueabihf-gcc 或类似 GNU/Linux ABI 工具链

真正容易被忽略的是:CLion 的代码补全和跳转依赖本地头文件索引,而交叉编译环境下,sys/arpa/ 等系统头文件路径往往不在默认搜索列表里,必须在 CMakeLists.txt 里用 include_directories()target_include_directories() 显式声明,否则即使编译通过,IDE 也会标红报错。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3550

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3093

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2133

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5050

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4742

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2873

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2365

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2579

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习