我已经有一段时间没有在 Linux 上使用 stm32f4 了。 自从我上次安装工具链以来,似乎发生了很多变化。
首先,在我安装了 GNU ARM Eclipse 插件后,我意识到那里支持 C++。我对吗?他们是否在 C++ 中的 stm32 外围库上创建了一些 HAL?
其次。我已经安装了 code courcery lite 编译器。我在 eclipse 项目设置中选择了正确的工具链。但它给了我这个错误。
arm-none-eabi-g++: error: nano.specs: No such file or directory
我可以看到在链接器脚本中有神秘的(对我来说)行
specs=nano.specs
所以我已经阅读了规范标志。似乎在这个规范中应该有一些编译器的常量标志或设置。但是为什么它们不在编译器需要它们的地方呢?他们应该从哪里来?
最佳答案
我本人是 Gnu-Arm-Eclipse-Plugin 的新手,遇到了同样的问题。 我正在运行 Kubuntu1404 并安装了 gcc-arm-none-eabi 工具链。
这是我发现的:
默认情况下,GNU ARM Eclipse 插件链接到 newlib-nano,如果您的工具链中不存在该库,您将收到此错误。
这是通过链接器标志 --specs=nano.specs 完成的,您可以通过 Project->Properties->C/C++ Build->Settings->Tool Settings->Cross ARM C++ Linker(Miscellaneous) 更改它。
*.specs 文件向链接器添加额外的指令,nano.specs 也是如此。 它应该位于 $TOOLCHAINPATH/arm-none-eabi/lib/
据我所知,newlib-nano 和 nano.specs 文件已从最近的 gcc 工具链中删除。至少它不在 gcc-arm 4.8.3 的 *buntu 版本中。
launchpad 上正在进行讨论,以将其再次包含在未来的构建中。
我的解决方法是使用另一个工具链,例如 gcc-arm-none-eabi-4.7.3。
编辑:您可以从 http://launchpad.net/gcc-arm-embedded/+download 下载压缩包但如果您运行 64 位操作系统,则需要一些 32 位库。
在*buntu a sudo apt 安装 lib32z1 lib32ncurses5 lib32bz2-1.0 将完成这项工作。
关于c++ - 如何设置 eclipse 以使用 arm 的代码源工具链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231760/