我正在尝试添加OPN框架,以增加对从Opticon手持扫描仪设备导入批次的支持。我将框架添加到项目中



在复制构建阶段添加了它



并添加了运行路径搜索路径



我最初遇到的完整错误是这个:

dyld: Library not loaded: /Users/[original developer of framework]/Development/Mac OPN API/trunk/Sources/opn_api/build/OPN API.build/Release/OPN.build/Objects-normal/i386/OPN
Referenced from: /Volumes/Hard Disk Drive/users/[My name]/Library/Developer/Xcode/DerivedData/barcode-test2-dvksadjkbyeilghbcdcgfqwrvwcb/Build/Products/Debug/barcode-test2.app/Contents/MacOS/barcode-test2
Reason: image not found


我认为我正在获取开发人员硬盘的本地路径,因为该路径可能是偶然生成的,并且是它最终失败之前试图解决的最后一条路径。

当我检查框架是否复制到正确的目录时,我确实将其复制到Frameworks文件夹中。

当我使用otool检查路径时,在任何地方都看不到正确的路径:


  My-MacBook:MacOS me $工具条形码-test2 -L
  条码测试2:
    / Users / [原始开发人员] /开发/ Mac OPN API / trunk / Sources / opn_api / build / OPN API.build/Release/OPN.build/Objects-normal/i386/OPN(兼容版本0.0.0,当前版本0.0 .0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa(兼容版本1.0.0,当前版本19.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation(兼容版本300.0.0,当前版本945.18.0)
    /usr/lib/libobjc.A.dylib(兼容版本1.0.0,当前版本228.0.0)
    /usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本169.3.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit(兼容版本45.0.0,当前版本1187.39.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation(兼容版本150.0.0,当前版本744.19.0)


otool在OPN二进制文件上:


  My-MacBook:OPN.framework me $ otool -L OPN
  OPN(架构i386):
      / Users / [原始开发人员] /开发/ Mac OPN API / trunk / Sources / opn_api / build / OPN API.build/Release/OPN.build/Objects-normal/i386/OPN(兼容版本0.0.0,当前版本0.0 .0)
     /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa(兼容版本1.0.0,当前版本11.0.0)
     /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit(兼容版本1.0.0,当前版本275.0.0)
     /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation(兼容版本150.0.0,当前版本368.35.0)
     /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon(兼容版本2.0.0,当前版本128.0.0)
     / usr / lib / libstdc ++。6.dylib(兼容版本7.0.0,当前版本7.4.0)
     /usr/lib/libgcc_s.1.dylib(兼容版本1.0.0,当前版本1.0.0)
     /usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本88.3.11)
     /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices(兼容版本1.0.0,当前版本18.0.0)
  OPN(体系结构ppc):
     / Users / [原始开发人员] /开发/ Mac OPN API / trunk / Sources / opn_api / build / OPN API.build/Release/OPN.build/Objects-normal/ppc/OPN(兼容版本0.0.0,当前版本0.0 .0)
     /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa(兼容版本1.0.0,当前版本11.0.0)
     /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit(兼容版本1.0.0,当前版本275.0.0)
     /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation(兼容版本150.0.0,当前版本368.35.0)
     /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon(兼容版本2.0.0,当前版本128.0.0)
     / usr / lib / libstdc ++。6.dylib(兼容版本7.0.0,当前版本7.4.0)
     /usr/lib/libgcc_s.1.dylib(兼容版本1.0.0,当前版本1.0.0)
     /usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本88.3.11)
     /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices(兼容版本1.0.0,当前版本18.0.0)


我应该在这里看不到@executable_path /../ Frameworks /之类的东西吗?

我在要搜索OPN文件的正确位置添加了OPN文件,并确保它可以立即生成,但是我真的不希望在我的Users目录中有完整的额外路径来完成此构建。

我已经尝试过许多install_name_tool的变体,但是每次执行命令时,它都不会给出错误或确认,并且当我再次使用otool -L检查时,没有任何变化。

最佳答案

@executable_path/../Frameworks添加到OPN框架构建设置的installation Directory中。

08-05 22:32