fix for linker errors #23
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is a linker error when trying to compile projects with not only an .ino but also .c and .cpp files.
"multiple definition of `pin_Map'"
And the cause for this is that pins_arduino.h for has this in it:
const PIN_MAP pin_Map[] = {
{ GPIOA, GPIO_PIN_0, PA0, DIO|PWM2|_SPI_SS},
{ GPIOA, GPIO_PIN_1, PA1, DIO|ADC1|PWM3}, // JTAG_CK
...
As this is an declaration of a variable you end up with multiple copes of pin_Map across the object files.
This pull request fixes the issue by moving the declaration of pin_Map to Arduino.c.
This project did not link before the fix and not it does build for W801, W806 and Air103:
EVE_HelloWorld_Arduino_IDE.zip
It may not work though, but that is something for me to explore, now that it builds.