CLION 调试野火STM32工程

学习野火STM32,液晶显示工程,

还是和前几天一样,把工程转换成CLion,因为试过了,Clion创建STM32工程的时候,不支持中文名,但为了和野火的对应,所以我是这么命名的: LCD_Display_CN_EN(FontLib_In_Flash)。工程创建完,跟以前一样走流程(详见之前的文章),但是到CMake那里,就出了问题:

搜索了一圈,没有找到合适的答案,心想几天前这么做都没问题,怎么突然就出幺蛾子了。所以怀疑是命名的问题,首先怀疑的就是命名中的括号'()',所以我用全局搜索的方法替换了所有出现

LCD_Display_CN_EN(FontLib_In_Flash)

这个名字的地方,共有36处,替换成:

LCD_Display_CN_EN_FontLib_In_Flash

然后就没问题了,所以确实是括号的问题

(中间也除了一些问题,后来才搞明白,但对于命名来说)

后来又通过验证,发现会影响CMake语句的是 .cproject 这个文件,这个文件里有4处出现工程名的地方,分别是 27行,105行,159行(2处):

因为我替换工程名的时候,这个.cproject文件中也替换了,这个地方一旦改动,CMakeList.txt会发生变化:

  👆17行Project后面的名字发生改变。

👆52/56这关键的两行也会因此被改变成默认的👇:

于是CMakeLists.txt会出问题

顺便提一下,改了.project文件后,开发板配置文件也会丢失,弹出需要重选的界面:

把52/56行重新该回去就好了:

对于Run 烧录下载来说,有两处是关键:

17行:

和69行(为什么重要,后面会提到):

17行的Project名,不一定非要跟工程名一致,可以手动修改,例如:

这个修改后的名字,会决定Build时生成的文件:

Build后,此时如果直接点击Run,会出现以下提示:

这时候,修改Run配置:

打开后Target和Executable binary那里都变红了(请忽略配置本身的名字abcde和红色部分的名字uvxyz123,因为我写文章前做了各种尝试,所以好几次修改命名,有点混乱),总之红色代表不可用(后面括号里有灰色字样 Not Found):

点击Target或 Executable binary 那个位置 ,会出现下拉选项:

发现唯一的可选项就是 qwerty.elf,也就是刚刚在CMakeLists.txt 第17行修改后的名称qwerty可见这两处是关联的。

好,选择它,之后另一个选框中也相应地自动被选中:

apply/OK后,回到主界面 Run:

就成功了。

CMakeLists.txt中的第69行为什么重要,这里的${PROJECT_NAME}(这看上去是一个变量,项目名称),如果我对它做一些改动

例如,改成固定名比如  qwerty.elf,没问题可以通过下载烧录:

如果改成别的,比如 abcde.elf :

则显示build都不成功,而此前其实我已经build成功并生成过 abcde.elf文件,所以它是不检测的,run应该是建立在现build的基础上。

作为一个小白,再稍稍研究下,打开Run 配置,虽然target那里没法选择,与17行的名字锁死了。但Executable那里可以选择别的elf文件:

但即便这样也还是没法build和run的:

但我们可以合理地推测,如果对17行修改一下,应该就可以了吧:

结果:

显示错误:

ninja: error: unknown target 'qwerty.elf'

 那就修改一下咯,下拉菜单却显示改不了:

刷新一下CMake,再打开run配置,Target那里变红了:

点击下拉就可以选:

Apply/OK,再build/run,  便能顺利通过:

总结:

.cproject里的工程名修改会导致CMakeLists.txt变动

CMakeLists.txt   17行的名称会决定 elf文件名,也会决定run配置的Target那里的名称

69行的${PROJECT_NAME}可以修改,但需要和17行的名称一致才可以顺利 build和run.

不建议修改${PROJECT_NAME},保持原样,修改17行就够了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值