【问题标题】:Dyld Error Message: Library not loaded: /usr/lib/libusb-1.0.2.dylib OSXDyld 错误消息:未加载库:/usr/lib/libusb-1.0.2.dylib OSX
【发布时间】:2013-05-25 04:34:44
【问题描述】:

我正在尝试为 OSX 发布一个应用程序,但每次有人在他们的机器上运行该应用程序时,他们都会得到:

Dyld Error Message:
  Library not loaded: /usr/lib/libusb-1.0.2.dylib
  Referenced from: /Users/USER/Desktop/____.app/Contents/MacOS/____
  Reason: image not found

这篇文章的人建议这是使用 Dyld: Library not Loaded Error Mac OS 构建包的路径 但即使我构建没有前缀的应用程序,我仍然有问题。

然后我尝试使用:

./configure --disable-dependency-tracking --disable-static --prefix=@executable_path/../Frameworks/

但这给出了无效路径的错误。我在包中包含 dylib。我必须使用 libusb 1.0.16RC10,因为最新的稳定版本中存在一个错误,每次您扫描设备时都会在短时间内破坏 MBP 上的鼠标和键盘功能。

请告诉我有一种方法可以包含它,每次使用都不必编译自己的 libUSB。

【问题讨论】:

  • libusb-1.0.2.dylib”和“libusb-1.0.16RC10.dylib”不是一回事吧?
  • 当我编译从最新的 git 下载的 1.0.16 代码时,它会生成名为 1.0.2 的文件
  • 您是否将 libusb.dylib 复制到已编译的应用程序包中?
  • 是的,包含在framework目录下的app包中。
  • 这是一个看似困难的问题,我建议阅读一些动态链接器教程,特别关注@rpath

标签: objective-c xcode macos libusb dyld


【解决方案1】:

因此,如果您将 .dylib 包含在框架目录中,现在您只需运行“install_name_tool”以将您的应用程序指向应用程序包中的该 dylib,而不是“/usr/lib”。

为此,请在编译和链接完成后添加“运行脚本”构建步骤。在这个构建阶段,脚本会很简单:

install_name_tool -id @executable_path/../Frameworks/libusb-1.0.2.dylib path/to/your/project/libusb-1.0.2.dylib

The tutorial I'm looking at can be found here。希望对您有所帮助!

【讨论】:

  • 这确实改变了一些东西...现在应用程序只是在托盘中弹跳但从未真正启动...
  • 最好检查 Console.app 以了解操作系统现在在抱怨什么。
  • 它很奇怪,从终端绝对没有。
  • 我构建的应用程序一定有问题,我清理了一个重建的,现在我回到了第 1 格。
  • 听起来你已经非常接近解决它了!
猜你喜欢
  • 2018-09-02
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 2021-07-14
  • 2020-04-19
  • 2020-03-19
相关资源
最近更新 更多