我正在做一个在 MacOSX 上使用 CEF 的小型概念证明。我采用了 Chromium Embedded Framework.framework 并通过运行更改了它的 rpath:
install_name_tool -id "@rpath/Chromium Embedded Framework.framework/Chromium Embedded Framework" Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework
然后编译并运行程序,如下所示:
$ ./cefobjchelper.app/Contents/MacOS/cefobjchelper
dyld: Library not loaded: @executable_path/Chromium Embedded Framework
Referenced from: /Users/pupeno/Library/Developer/Xcode/DerivedData/cefobjc-bxtruyemnyagwwgdejtzuxngovsr/Build/Products/Debug/./cefobjchelper.app/Contents/MacOS/cefobjchelper
Reason: image not found
Trace/BPT trap: 5
我知道 @executable_path/Chromium Embedded Framework 并不真正存在,但为什么当我更正 CEF 中的路径时它还要寻找它?
为了确保我检查了 bundle 中包含的 CEF 路径是否正确,结果确实如此:
$ otool -D cefobjchelper.app/Contents/Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework
cefobjchelper.app/Contents/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework:
@rpath/Chromium Embedded Framework.framework/Chromium Embedded Framework
我在这里缺少什么?
最佳答案
原因是之前的实验中有一个额外的框架路径,该库的另一个副本位于我的主目录中的其他位置,并且从链接库列表中删除该库并没有删除该路径,因此重新添加它从新位置,正在从旧位置拾取它,用于链接但不嵌入。
关于macos - 为什么在 Mac OS X 上找不到这个库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28807072/