Shared cache link error when linking to dylib

Hi,

I'm producing a dylib that another developer is trying to link with an ffmpeg plugin, building on Sequoia (this was not an issue prior to upgrading the OS). The error is:

ld: Shared cache eligible dylib cannot link to ineligible dylib '@rpath/libme.dylib'. Remove link to ineligible dylib, fix its eligibility, or opt out of the shared cache using the build setting 'LD_SHARED_CACHE_ELIGIBLE=NO' (or linker flag '-not_for_dyld_shared_cache') clang: error: linker command failed with exit code 1 (use -v to see invocation)

So, simple question - how do I "fix my dylib's eligibility"? I can't seem to find much info about this online.

Thanks, Jeff

Accepted Answer

You can find background material about the dynamic linker shared cache in this post. And a link to that and lots of other info in An Apple Library Primer.

The dynamic linker shared cache is only relevant for Apple dynamic libraries. Third-party libraries never go into the shared cache [1]. So the issue here isn’t your library, but the other developer’s library. It sounds like they’re building it for the shared cached when they shouldn’t be [2].

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] Because the shared cache is no longer a cache, but rather authored as part of the system build process.

[2] Unless it’s someone at Apple, of course (-: But, serious, if that’s the case, they should seek help internally.

Shared cache link error when linking to dylib
 
 
Q