10 years, 10 months ago.

mbed_mac_address multiply defined

I recently updated to the latest mbed libraries, and now I get the error:

Error: Symbol mbed_mac_address multiply defined (by mbed_overrides.o and main.cpp.K64F.o).

I've been searching for how I can get my strongly defined mbed_mac_address function to "win" against whatever is already strongly defined in mbed_overrides, but can't find anything. Can someone explain how I can do this?

Question relating to:

2 Answers

10 years, 10 months ago.

Dave, In Rev 92 of mbed.lib, the MAC address for the K64F was finally properly derived. You may have also defined it in your code (as I did) as a temporary fix. Remove the definition from your code.

Interesting, okay! We actually added a Microchip 24AA02E64 to get a MAC address. Guess we won't need it anymore.

posted by Dave M 28 Jan 2015

I was a little too hasty there... so what if we want to keep using the MAC address associated with the Microchip part? Is there a #define I can set to prevent the mbed lib from defining mbed_mac_address?

posted by Dave M 28 Jan 2015

Have you tried any of these?

http://developer.mbed.org/users/ceri/code/MAC_Address_SET/file/02ad3aa4b420/main.cpp

http://developer.mbed.org/forum/mbed/topic/3939/

There are other similar examples as well. I have not tried any of them though.

posted by Kevin Braun 28 Jan 2015
10 years, 10 months ago.

Have a look at this post. Should have what you need.

http://developer.mbed.org/users/chris/notebook/Patching-functions-and-libraries/