# DYLD_LIBRARY_PATH library variables break linking of standard system libraries by forcing dyld to ignore # everything but the library's basename when performing what would otherwise be successful library # resolution. mkdir rust-lib echo 'void my_libjpeg_api (void) { }' | clang -dynamiclib -x objective-c -o rust-lib/libjpeg.dylib - echo 'extern void my_libjpeg_api(void); int main (int argc, char *argv[]) { my_libjpeg_api(); return 0; }' | clang -x objective-c -o example - -framework ImageIO -Lrust-lib -ljpeg env DYLD_LIBRARY_PATH=`pwd`/rust-lib ./example #dyld: Library not loaded: /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib # Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO # Reason: Incompatible library version: ImageIO requires version 1.0.0 or later, but libjpeg.dylib provides version 0.0.0