Prolog:我正在使用 STM32 CubeIDE 为 STM32 微控制器开发嵌入式应用程序,例如 F1 系列、F4 系列、G0 系列和其他一些使用 C 语言的控制器。
发生了什么:今天早上,自动更新功能建议我更新到 STM CubeID 版本 1.9.0,我接受了。更新程序完成后,我打开当前项目并更改 typedef 结构中的一个变量,然后单击“构建”按钮。突然,链接器报告了很多“多重定义”和“首先在此处定义”错误。该项目昨天使用 CubeIDE 1.8 版本完美编译,没有任何问题
经过一两个小时的搜索后,我可能错过了一个分号或其他方向的东西,这可能会弄乱整个代码,我得出的结论是,从 CubeIDE 1.8.0 升级到 1.9.0 可能是根源导致此错误的原因。
所以我决定卸载 CubeIDE 1.9.0 并重新安装版本 1.8.0,将项目回滚到昨天晚上的最后一个工作版本(使用 1.8.0 编译),进行相同的更改,瞧!- 一切又恢复正常了。
对我来说,STM 似乎把链接器弄乱了。任何人都可以证实这种行为,还是只有我受到影响?