5 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

5 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
5 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/