【发布时间】:2012-05-08 23:20:12
【问题描述】:
我正在尝试让 dylib 在我的 OSX 项目中工作。
我已经阅读了一些示例,特别是以下示例: Xcode 4 adding dylib
但我仍然无法让它工作。
以下是我执行的步骤:
- 将 testing.1.dylib 复制到我的 Xcode 项目文件夹中。
- 跑
sudo install_name_tool -id @executable_path/../Frameworks/testing.1.dylib testing.1.dylib -
跑:
otool -L testing.1.dylib并收到以下信息:testing.1.dylib:
@executable_path/../Frameworks/testing.1.dylib(兼容版本 2.0.0,当前版本 2.0.0)
/usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本159.1.0) 将
testing.1.dylib作为框架添加到项目中。 (使用带有库选项的链接包)。- 此时我编译 testing1.dylib 并没有像我预期的那样被复制到 .App/Framework 中,所以我手动创建了 Framework 路径并将 testing.1.dylib 复制到其中: a) mkdir -p testing.app/Contents/Frameworks b) cp testing.1.dylib testing.app/Contents/Frameworks
- 在 Xcode 中,我将目标和项目的
Runtime Search Paths更新为:@executable_path/../Frameworks。
现在我将 testing.app 复制到另一台新安装的机器上并尝试运行它。我收到以下错误:
dyld:库未加载:/user/local/lib/testing1.dylib 引用自:/Users/me/testing.app/MacOS/./testing 原因:找不到图片
我错过了什么?
注意:运行 install_name_tool 时,需要使用 sudo 否则会出现以下错误:
install_name_tool:无法打开输入文件:testing.1.dylib 进行写入(权限被拒绝) install_name_tool: can't lseek to offset: 0 in file: testing.1.dylib for writing(错误的文件描述符) install_name_tool:无法在文件中写入新标头:testing.1.dylib(错误的文件描述符) install_name_tool:无法关闭写入输入文件:testing.1.dylib(错误文件描述符)
【问题讨论】:
-
otool -L the_executable_itself 给出了什么?
标签: macos xcode4 dylib otool install-name-tool