最近几天,我一直在尝试用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中这样做)或其他? 谢谢你的帮助!
我解决了这个问题。 我只是使用Ubuntu提供的arm-none-eabi-xxx
软件包,而不是原来的软件包,那就是问题所在。 所有你需要做的只是从工具链的网站下载包并安装它们。 他们工作得很好!
可选步骤
如果你已经从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
,而旧的Ubuntus – 12.04 ea – 有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
如果您正在编译ARM Cortex-M或Cortex-R,请尝试使用apt-get代替gcc-arm-none-eabi
来安装gcc-arm-embedded
gcc-arm-none-eabi
。 这工作对我来说,建议来自Arm的“Yotta”构建工具的文档:http: //yottadocs.mbed.com/#linux-cross-compile 。