GNU ARM - 找不到nano.specs

10

最近我一直在尝试使用Ubuntu 14.04LTS、Eclipse和GNU ARM插件来编译一个STM32F4xx项目。现在它显示缺少nano.specs文件。

这是我的构建日志:

14:39:35 **** Incremental Build of configuration Release for project F4Test ****
make all 
Building target: F4Test.elf
Invoking: Cross ARM C++ Linker
arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -Wextra  -g -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L"../ldscripts" -Wl,-Map,"F4Test.map" --specs=nano.specs -o "F4Test.elf"  ./system/src/stm32f4-hal/stm32f4xx_hal.o ./system/src/stm32f4-hal/stm32f4xx_hal_cortex.o ./system/src/stm32f4-hal/stm32f4xx_hal_flash.o ./system/src/stm32f4-hal/stm32f4xx_hal_flash_ex.o ./system/src/stm32f4-hal/stm32f4xx_hal_flash_ramfunc.o ./system/src/stm32f4-hal/stm32f4xx_hal_gpio.o ./system/src/stm32f4-hal/stm32f4xx_hal_iwdg.o ./system/src/stm32f4-hal/stm32f4xx_hal_pcd_ex.o ./system/src/stm32f4-hal/stm32f4xx_hal_pwr.o ./system/src/stm32f4-hal/stm32f4xx_hal_pwr_ex.o ./system/src/stm32f4-hal/stm32f4xx_hal_rcc.o ./system/src/stm32f4-hal/stm32f4xx_hal_rcc_ex.o  ./system/src/newlib/_cxx.o ./system/src/newlib/_exit.o ./system/src/newlib/_sbrk.o ./system/src/newlib/_startup.o ./system/src/newlib/_syscalls.o ./system/src/newlib/_write.o ./system/src/newlib/assert.o  ./system/src/diag/Trace.o ./system/src/diag/trace_impl.o  ./system/src/cortexm/_initialize_hardware.o ./system/src/cortexm/_reset_hardware.o ./system/src/cortexm/exception_handlers.o  ./system/src/cmsis/system_stm32f4xx.o ./system/src/cmsis/vectors_stm32f4xx.o  ./src/BlinkLed.o ./src/Timer.o ./src/_initialize_hardware.o ./src/main.o   
arm-none-eabi-g++: error: nano.specs: No such file or directory
make: *** [F4Test.elf] Error 1

14:39:35 Build Finished (took 65ms)

我在电脑上找到了一些 nano.specs 文件。我该怎么办?只需移除链接器标志 (但我无法在 Eclipse 中找到如何做到这一点) 或者还有其他方法吗? 感谢您的帮助!
3个回答

8

我解决了这个问题。我只是使用了Ubuntu提供的arm-none-eabi-xxx软件包,而不是原始软件包 - 这就是问题所在。你需要做的就是从工具链的网站下载软件包并安装它们。它们完全可以正常工作!


1
太好了。有关如何安装这个工具链的任何建议吗?我需要卸载一些软件包,然后在某个地方解压缩吗?我还使用Eclipse作为我的IDE。 - Tomasz Gandor

5

可选步骤

如果您已经从Ubuntu的软件源安装了捆绑的工具链,请将其卸载:

$ sudo apt-get remove gcc-arm-none-eabi

推荐的安装方式

插件页面上已经有了详细说明:

http://gnuarmeclipse.github.io/toolchain/install/

-> 具体描述在14.04 LTS,x64版中需要哪些软件包。

首先,安装32位依赖库:

$ sudo apt-get -y install lib32z1 lib32ncurses5 lib32bz2-1.0

(15.04及以上版本只需要安装lib32ncurses5,而旧版Ubuntu - 12.04等 - 需要安装ia32-libs).

然后从这里下载一个预编译的工具链包:

https://launchpad.net/gcc-arm-embedded/+download

(他们建议在撰写时使用gcc 4.9,但应该可以使用最新的gcc 5.3版本。)

推荐的安装位置

最后将包解压缩到/usr/local中 - 这样Eclipse插件应该能够找到它,而无需在Eclipse首选项中配置工具链或修改$PATH变量。

$ cd /usr/local
$ sudo tar xf ~/Downloads/gcc-arm-none-eabi-*-linux.tar.bz2

非常好的答案!这正是我在遇到问题后所做的。我可以看出你找到了如何安装所有东西,但如果有人感兴趣,这是一段视频在我设置一切时帮助了我很多。 - Jacajack

0
如果您正在编译ARM Cortex-M或Cortex-R,请尝试使用apt-get安装软件包gcc-arm-embedded,而不是gcc-arm-none-eabi。这对我有用,并且建议来自Arm的“Yotta”构建工具文档:http://yottadocs.mbed.com/#linux-cross-compile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接