I have other Inline::C modules which access libs in the exact same /usr/local/lib directory, without specifying -L, that compile fine That's the puzzle - if you can work out why it's *only* libmpg123 that's posing the problem, then you've solved the puzzle.
As
AM said, turning on BUILD_NOISY is the first thing to do - and feel free to post full output here if the cause of the problem is still not apparent to you.
Look for a warning that no library was found for -lmpg123. That would tell you that the mpg123 library was not found, and would mean that MakeMaker has removed the reference to it. Hence there would be no reference to it in the generated Makefile.
I cannot find an explanation for how the (non-)existence of a library is determinedThe code that deals with this is in ExtUtils/Liblist/Kid.pm.
If that code fails to locate the library, then EU::MM deems it non-existent and removes the link
Cheers,
Rob