Lazy loaded image
🥳嵌入式Linux开发
Lazy loaded imageGuide to Clion
Words 3399Read Time 9 min
2026-9-2
2026-9-2
 

FAQ

  1. CLion 乱码 中文编码设置(UTF8、GBK)(Windows、WSL)
     
    内嵌终端Vim编辑模式下ESC键失效

    问题描述

    Clion内嵌终端,在Vim编辑模式下,按ESC键退出insert mode时,并且光标自动定位到idea的编辑窗口,无法退出。

    产生原因

    终端中 “ESC” 快捷键 Switch Focus To Editor,删除其快捷键绑定即可。

    解决方法

    1. 使用Ctrl+Alt+S快捷键打开clion全局配置
    1. 在快捷键映射配置 Settings -> keymap 中
    1. 找到 Plug-ins -> Terminal -> Switch Focus To Editor
    1. 删除其快捷键绑定即可。
      1. notion image
    带参数调试运行

    问题描述

    运行程序需要输入参数,在CLion中如何添加?

    解决方法

    notion image
    步骤1:点击配置参数
    notion image
    步骤2:参数添加位置
    点击运行就会将输入参数传进去,等同于 gdb 的 setarg
    Debug Console 调试不输出内容
    在main函数中添加
    notion image
    Cannot open Local Terminal
    问题描述: 打开Terminal时,显示【Cannot open Local Terminal】
    产生原因: 终端路径错误
    解决方法:
    1. 沿着 File | Settings | Tools | Terminal 路径打开
    1. 更改终端路径
      1. notion image
    解决 Clion内嵌终端乱码问题
    问题描述: 使用 Oh my posh 优化过的终端(powershell),自身打开显示正常,但clion内嵌中打开,显示会有乱码。
    产生原因: Clion中内嵌终端默认字体和编辑器一致,而编辑器默认字体非nerd font,因此会产生乱码。
    解决方法:
    1. 下载 Nerd 字体(推荐 Fantasque Sans Mono)并安装
    1. 打开设置路径File | Settings | Editor | Color Scheme | Console Font,勾选【Use console font instead of default】,避免和编辑器使用同一个缺省字体,接着在下拉框中选择刚刚安装的字体。假如发现安装的字体没有显示,可以取消勾选【Show only monospaced fonts】后继续寻找
      1. notion image
    1. 遇到任何CMake相关的报错,一般是由于缓存没有更新引起的,可以在CLion中选Tools-CMake-Reset Cache and Reload Project即可解决。
     

    软件功能

    编译器环境搭建 MinGW、Cygwin、VS、WSL
     
    CMake 添加静态、动态链接库
    +---factorial | CMakeLists.txt | factorial.c | factorial.h | +---fibonacci | CMakeLists.txt | fibonacci.c | fibonacci.h
    | library_with_cmake.c | CMakeLists.txt
     
    子文件夹 添加静态库 factorial→CMakeLists.txt
     
    子文件夹 添加动态库 fibonacci→CMakeLists.txt
     
    根目录 CMakeLists.txt
     
    ldd 查看可以执行程序关联的动态库
    执行 install 可以在 CLion 菜单中 Build -> install,也可以在 cmake-build-* 目录下执行
    这样我们就可以在 install 目录下直接执行相应的可执行程序了。
     
    添加动态库,可以将 .so 库添加进入 “lib/”,“/usr/lib”,”/usr/local/lib“
    添加动态链接库,出现如下问题:
    "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
    原因1:未包含共享库,或共享库版本不对
    解决方法:下载安装
    原因2:已包含,但默认共享库路径找不到对应共享库文件
    解决方法
    1) . 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令
    ldconfig 命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序 (ld.so) 所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表. 2) . 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:
    3).如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径)。那可以export一个全局变量LD_LIBRARY_PATH,然后ldconfig刷新下,然后运行程序的时候就会去这个目录中找共享库.
    LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:
    export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
    一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.
    其他参考
     
    ”cannot start process,the working directory '********' does not exist“ 错误的原因和解决办法
    原因:
    idea没有工作空间这个概念,所以在创建工程的时候指定的工作区间,idea无法找到对应的工程,导致编译不通过。我们要设置一下,idea才会识别到你的工程位置。、
    解决方法:$MODULE_DIR$, 动态识别工作区间,保存设置。
     
    参考链接

    Code style | CLion (jetbrains.com)

    选择代码风格 → 格式化风格 → 打开Inspection功能
     

    File and Code Templates/Live Templates

    notion image
    LiveTemplate
    notion image
    hed
     
    end
     
     

    MISRA Checks [Clion中支持列表]

    设置可以在 CLion 的Settings/Preferences | Editor | Inspections | C/C++ | General | MISRA Checks中找到。您可以配置要在项目上运行的 C 和 C++ 检查列表。

    compiler explorer

    实现一些原型、测试跨编译器的兼容性、测试编译器bug,还有分析生成的汇编,
    Clion 查看反编译的汇编代码?
    1. GDB 的 disas,汇编码的话 LLDB 里用 disas
    1. debug 信息的代码,step into 会调到 Disassembly 界面
    1. Clion查看 compiler Explorer Exception reading from http://localhost:10240
    Exception reading from http://localhost:10240

    调试工具

    BreakPoint

    跳到调用的函数

    Variables

    Watches

    Evaluate Expression, 可添加复杂的表达式

    LLDB - MSVC /GDB - GCC

    只在调试时候生效
    永久生效方法 用户目录下添加 .lldbinit文件,将setting set target.x86-disassembly-flavor att/itel 添加到文件种
    对于GDB,用户目录下添加 .gdninit文件,将set disassembly-flavor att 添加到文件种
     

    Memery VIEW

    &i
    &main
    小端序显示
     

    Unit Testing

     
     

    Language and framework-specific guidelines

    添加脚本

    小节引用

     
     
     
     
     
     

    GNU ARM汇编语言

    ARM编译器和GNU ARM编译器GCC对比
    notion image
    GNU ARM伪指令操作
    notion image
     
     

    ld链接脚本详解

     

    内存分配

    引用

    1. 嵌入式开发 - 功能 | CLion (jetbrains.com.cn)
    1. 配置CLion用于STM32开发【优雅の嵌入式开发】 - 知乎 (zhihu.com)(Windows)
    1. Embedded development | CLion Documentation (jetbrains.com)
    1. Embedded Development in CLion – IDEs Support (IntelliJ Platform) | JetBrains(重要)
    1. ubuntu 使用clion 搭建stm32开环境使用stlink下载调试_clion stlink-(Ubuntu)
     
    上一篇
    Buildroot 文件系统构建指南 —— 从 rootfs 到 A/B OTA 的工程化全景
    下一篇
    Linux 内核原子操作详解:CAS 与 Test-and-Set

    Comments
    Loading...