8 years, 2 months ago.

Latest mbed-dev doesn't link

I'm getting a ton of linker errors when I try to use the latest version of mbed-dev on the online compiler. Anyone have any ideas?

NOTE: The site isn't letting me add the error log to this post because it "doesn't look like useful content"???

Hi Neil,

Sorry for the issues you're having.

What target are you using?

Regards,

Andrea, team mbed

posted by Andrea Corrado 05 Sep 2016

1 Answer

8 years, 2 months ago.

The problem is not bound to a specific target. The linking errors occur with all targets, when compiling with mbed-dev. The problem is that in mbed-dev in folder "common" there are several double definitions. A lot of newer files with mbed_ suffix were added but the corresponding older files (without mbed_ suffix) were not removed accordingly, so the same definitions are in both files. The files in question are:

gpio.c and mbed_gpio.c
assert.c and mbed_assert.c
semihost_api.c and mbed_semihost_api.c
wait_api.c and mbed_wait_api.c
error.c and mbed_error.c
ticker_api.c and mbed_ticker_api.c
us_ticker_api.c and mbed_us_ticker_api.c
board.c and mbed_board.c
pinmap_common.c and mbed_pinmap_common.c
rtc_time.c and mbed_rtc_time.c

Compile Error Messages:

Error: Symbol gpio_init_in multiply defined (by mbed_gpio.LPC1768.o and gpio.LPC1768.o).
Error: Symbol mbed_assert_internal multiply defined (by mbed_assert.LPC1768.o and assert.LPC1768.o).
Error: Symbol gpio_init_out multiply defined (by mbed_gpio.LPC1768.o and gpio.LPC1768.o).
Error: Symbol semihost_close multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_ensure multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_flen multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_istty multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_open multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_read multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_remove multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_seek multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_write multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol wait_us multiply defined (by wait_api.LPC1768.o and mbed_wait_api.LPC1768.o).
Error: Symbol error multiply defined (by mbed_error.LPC1768.o and error.LPC1768.o).
Error: Symbol ticker_read multiply defined (by ticker_api.LPC1768.o and mbed_ticker_api.LPC1768.o).
Error: Symbol get_us_ticker_data multiply defined (by us_ticker_api.LPC1768.o and mbed_us_ticker_api.LPC1768.o).
Error: Symbol ticker_insert_event multiply defined (by ticker_api.LPC1768.o and mbed_ticker_api.LPC1768.o).
Error: Symbol ticker_remove_event multiply defined (by ticker_api.LPC1768.o and mbed_ticker_api.LPC1768.o).
Error: Symbol ticker_set_handler multiply defined (by ticker_api.LPC1768.o and mbed_ticker_api.LPC1768.o).
Error: Symbol wait_ms multiply defined (by wait_api.LPC1768.o and mbed_wait_api.LPC1768.o).
Error: Symbol mbed_die multiply defined (by mbed_board.LPC1768.o and board.LPC1768.o).
Error: Symbol gpio_init_in_ex multiply defined (by mbed_gpio.LPC1768.o and gpio.LPC1768.o).
Error: Symbol gpio_init_inout multiply defined (by mbed_gpio.LPC1768.o and gpio.LPC1768.o).
Error: Symbol gpio_init_out_ex multiply defined (by mbed_gpio.LPC1768.o and gpio.LPC1768.o).
Error: Symbol pinmap_find_function multiply defined (by pinmap_common.LPC1768.o and mbed_pinmap_common.LPC1768.o).
Error: Symbol pinmap_find_peripheral multiply defined (by pinmap_common.LPC1768.o and mbed_pinmap_common.LPC1768.o).
Error: Symbol pinmap_function multiply defined (by pinmap_common.LPC1768.o and mbed_pinmap_common.LPC1768.o).
Error: Symbol pinmap_merge multiply defined (by pinmap_common.LPC1768.o and mbed_pinmap_common.LPC1768.o).
Error: Symbol pinmap_peripheral multiply defined (by pinmap_common.LPC1768.o and mbed_pinmap_common.LPC1768.o).
Error: Symbol pinmap_pinout multiply defined (by pinmap_common.LPC1768.o and mbed_pinmap_common.LPC1768.o).
Error: Symbol semihost_connected multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_disabledebug multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_powerdown multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_reset multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_uid multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol us_ticker_irq_handler multiply defined (by us_ticker_api.LPC1768.o and mbed_us_ticker_api.LPC1768.o).
Error: Symbol ticker_irq_handler multiply defined (by ticker_api.LPC1768.o and mbed_ticker_api.LPC1768.o).
Error: Symbol wait multiply defined (by wait_api.LPC1768.o and mbed_wait_api.LPC1768.o).
Error: Symbol attach_rtc multiply defined (by rtc_time.LPC1768.o and mbed_rtc_time.LPC1768.o).
Error: Symbol clock multiply defined (by rtc_time.LPC1768.o and mbed_rtc_time.LPC1768.o).
Error: Symbol set_time multiply defined (by rtc_time.LPC1768.o and mbed_rtc_time.LPC1768.o).
Error: Symbol time multiply defined (by rtc_time.LPC1768.o and mbed_rtc_time.LPC1768.o).
Error: Symbol ticker_get_next_timestamp multiply defined (by ticker_api.LPC1768.o and mbed_ticker_api.LPC1768.o).
Error: Symbol semihost_exit multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_rename multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Symbol semihost_vbus multiply defined (by semihost_api.LPC1768.o and mbed_semihost_api.LPC1768.o).
Error: Not enough information to list the image map.

Regards
Nenad

Accepted Answer

Confirmed, removing the older files fixes the problem.

posted by Neil Thiessen 06 Sep 2016

Thanks for confirmation Neil.

@mbed-Team: Can someone from the mbed-Team please apply the fix to the current release of mbed-dev, so that others don't stumble over the same problem?

Thanks and best regards
Nenad

posted by Nenad Milosevic 06 Sep 2016

mbed-dev updated. Sorry about that.

posted by Sam Grove 07 Sep 2016