c - Problems with arm-none-eabi linker in Eclipse using GNU MCU Eclipse Plugin -
i having problem project i'm trying set new stm32f7 nucleo board. freshly installed gnu arm embedded toolchain, stm32cubef7 , gnu mcu eclipse plugin, set new project on windows 7 machine @ work. have done @ home on ubuntu laptop without issues. after set project, added hal , cmsis libraries , used template project stm32cubef7. far compilation works fine, when linking following error:
c:/program files (x86)/gnu tools arm embedded/5.4 2016q2/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -lc_p-lc_p
to understanding issue here library strange name can not found. unfortunately page found same error described in russian, don't speak @ all.
at first glance, me looks generated makefile corrupted, , library called c_p trying linked, done twice without space in between. issue eclipse or eclipse gnu mcu plugin.
things tried rid of error:
- update eclipse
- downgrade several old versions of gnu arm embedded toolchain
- turn off/on following linker options:
--specs=nano.specs
-nodefaultlibs
-nostdlib
- install toolchain in folder without spaces
here's automatically generated makefile:
################################################################################ # automatically-generated file. not edit! ################################################################################ -include ../makefile.init rm := rm -rf # of sources participating in build defined here -include sources.mk -include system/src/subdir.mk -include system/hal/src/subdir.mk -include system/subdir.mk -include src/subdir.mk -include subdir.mk -include objects.mk ifneq ($(makecmdgoals),clean) ifneq ($(strip $(cc_deps)),) -include $(cc_deps) endif ifneq ($(strip $(c++_deps)),) -include $(c++_deps) endif ifneq ($(strip $(c_upper_deps)),) -include $(c_upper_deps) endif ifneq ($(strip $(cxx_deps)),) -include $(cxx_deps) endif ifneq ($(strip $(asm_deps)),) -include $(asm_deps) endif ifneq ($(strip $(s_upper_deps)),) -include $(s_upper_deps) endif ifneq ($(strip $(c_deps)),) -include $(c_deps) endif ifneq ($(strip $(cpp_deps)),) -include $(cpp_deps) endif endif -include ../makefile.defs # add inputs , outputs these tool invocations build variables secondary_flash += \ stm32template.hex \ secondary_size += \ stm32template.siz \ # target all: stm32template.elf secondary-outputs # tool invocations stm32template.elf: $(objs) $(user_objs) @echo 'building target: $@' @echo 'invoking: gnu arm cross c++ linker' arm-none-eabi-g++ -mcpu=cortex-m7 -mthumb -mfloat-abi=soft -o0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -wall -wextra -g3 -p -pg -t mem.ld -t libs.ld -t sections.ld -nostartfiles -l"../ldscripts" -wl,-map,"stm32template.map" --specs=nano.specs -o "stm32template.elf" $(objs) $(user_objs) $(libs) @echo 'finished building target: $@' @echo ' ' stm32template.hex: stm32template.elf @echo 'invoking: gnu arm cross create flash image' arm-none-eabi-objcopy -o ihex "stm32template.elf" "stm32template.hex" @echo 'finished building: $@' @echo ' ' stm32template.siz: stm32template.elf @echo 'invoking: gnu arm cross print size' arm-none-eabi-size --format=berkeley "stm32template.elf" @echo 'finished building: $@' @echo ' ' # other targets clean: -$(rm) $(cc_deps)$(c++_deps)$(objs)$(c_upper_deps)$(cxx_deps)$(secondary_flash)$(secondary_size)$(asm_deps)$(s_upper_deps)$(c_deps)$(cpp_deps) stm32template.elf -@echo ' ' secondary-outputs: $(secondary_flash) $(secondary_size) .phony: clean dependents -include ../makefile.targets
does have inputs me?
edit: gnu mcu eclipse plugin provides template new projects, same error.
you make 1 important mistake. try use diy eclipse configuration import projects created particular environment.
install openstm32. generate project using sw4stm32 toolchain setting.
import project. compile, link , debug
if find installed toolchain obsolete, able replace it.
Comments
Post a Comment