【问题标题】:install_name_tool does not make any changes?install_name_tool 没有做任何改变?
【发布时间】:2015-09-11 13:27:35
【问题描述】:

我的应用需要加载硬件制造商提供的 dylib。在 dylib 上使用 otool 会产生以下输出:

$otool -L harwdware.2.dylib 
hardware.2.dylib:
    @executable_path/../Addittional/hardware.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

我想将 @executable_path/../Addittional/ 更改为 @executable_path/../Frameworks/ ,它实际上更短,所以它应该适合. 但是当我运行时:

install_name_tool -change @executable_path/../Addittional/hardware.2.dylib @executable_path/../Frameworks/hardware.2.dylib hardware.2.dylib

然后什么都没有发生,没有任何变化,otool 的输出和以前一样。

我哪里错了?

【问题讨论】:

  • -change 用于更改对依赖库的引用。 -id 可能是你想要的。
  • 嘿@trojanfoe 成功了!感谢您的帮助。

标签: xcode macos cocoa sdk install-name-tool


【解决方案1】:

感谢@trojanfoe,正确的命令行是:

install_name_tool -id "@executable_path/../Frameworks/hardware.2.dylib"  hardware.2.dylib

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2020-10-24
    相关资源
    最近更新 更多