我还没在linux上使用stm32f4一段时间。 自从上次安装工具链以来,似乎发生了很多变化。
首先,在我安装了GNU ARM Eclipse插件之后,我意识到那里有对C ++的支持。我对吗?他们是否在C ++中使用stm32 pheripherial库创建了一些HAL?
二。我已经安装了代码courcery lite编译器。我在eclipse项目设置中选择了正确的工具链。但它给了我这个错误。
arm-none-eabi-g++: error: nano.specs: No such file or directory
我可以看到链接器脚本中存在神秘的(对我来说)行
specs=nano.specs
所以我已经阅读了规格标志。似乎在这个规范中应该有一些常量标志或编译器的设置。但是为什么它们不是编译器对它们进行打击的地方呢?他们应该从哪里来?
答案 0 :(得分:3)
我自己对Gnu-Arm-Eclipse-Plugin很新,面临同样的问题。 我正在运行Kubuntu1404并安装了gcc-arm-none-eabi工具链。
这是我发现的:
默认情况下,GNU ARM Eclipse插件会链接到newlib-nano,如果您的工具链中没有此库,则会出现此错误。
这是通过链接标志--specs = nano.specs来完成的,您可以通过Project->属性 - > C / C ++构建 - >设置 - >工具设置 - >交叉ARM C ++链接器进行更改(杂项)。
* .specs文件向链接器添加其他指令,nano.specs也是如此。 它应该位于$ TOOLCHAINPATH / arm-none-eabi / lib /
中据我所知newlib-nano,所以nano.specs文件已从最近的gcc工具链中删除。至少它不在gcc-arm 4.8.3的* buntu版本中。
在启动板上正在进行讨论,以便在将来的版本中再次包含它。
我的工作范围是使用另一种工具链,如gcc-arm-none-eabi-4.7.3。
编辑:您可以从http://launchpad.net/gcc-arm-embedded/+download下载tarball,但如果您运行的是64位操作系统,则需要一些32位库。
On * buntu a sudo apt get install lib32z1 lib32ncurses5 lib32bz2-1.0 会做的。