Web IDE cannot compile: multiple definition of `TIM2_IRQHandler'


A sketch of mine that used to compile OK in the Web IDE, no longer is. I’m getting this …

obj/src/stm32_it.o: In function `TIM2_IRQHandler':
/spark/compile_server/shared/workspace/worker_2/core-firmware/build/../src/stm32_it.cpp:527: multiple definition of `TIM2_IRQHandler'
hardware.o:/spark/compile_server/shared/workspace/worker_2/core-firmware/build/hardware.cpp:107: first defined here
collect2: error: ld returned 1 exit status

My program does declare TIM2_IRQHandler, thusly …

extern "C" void TIM2_IRQHandler()

… though in a separate file pair, hardware.cpp/h

Way back some time, I was unable to include my own TIM2_IRQHandler in the project’s main .ino file. I was advised that putting it in a separate, included file would solve the problem, which it did. But now it isn’t working, again – for a different reason, perhaps?

EDIT: I should mention for clarity that the code DOES compile just fine locally, using command-line tools.

Anyone got any clues?



Hmm… maybe something changed in the main makefiles that didn’t carry forward to the build IDE. I’ll open an issue for myself to look into this this sprint.


Thanks @Dave

There must be so much going on at Spark HQ these days, with the recent news and what not. Keep up the good work! :smile:

1 Like