1

当我从 Xcode 运行应用程序时,它会扩展一些环境变量。例如,它将可执行目录添加到 DYLD_LIBRARY_PATH。而且因为我在可执行目录中有 libjpeg.dylib,所以我的应用程序无法初始化并出现错误:

dyld: Library not loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/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

这显然是由于 DYLD_LIBRARY_PATH 扩展而发生的。dyld 在加载系统框架时尝试加载我的 libjpeg.dylib 而不是系统一。对我来说,这样的 Xcode 行为看起来不合逻辑,因为从终端运行应用程序和从 Xcode 运行它时会得到不同的结果。所以我正在寻找任何禁用这种 Xcode 行为的方法。

PS 在方案的“环境变量”部分设置 DYLD_LIBRARY_PATH 没有帮助,因为我会将 DYLD_LIBRARY_PATH 设置为 MY_VALUE:EXECUTABLE_DIR。

4

0 回答 0