我正在尝试让 dylib 在我的 OSX 项目中工作。
我一直在阅读一些示例,特别是这个:Xcode 4 添加 dylib https://stackoverflow.com/questions/6801709/xcode-4-adding-dylib
但我仍然无法让它发挥作用。
以下是我执行的步骤:
- 将testing.1.dylib复制到我的Xcode项目文件夹中。
- Ran
sudo install_name_tool -id @executable_path/../Frameworks/testing.1.dylib testing.1.dylib
-
Ran: otool -L testing.1.dylib
并收到以下信息:
测试.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时,并没有按照我的预期将testing1.dylib复制到.App/Framework中,因此我手动创建Framework路径并将testing.1.dylib复制到其中:
a) mkdir -p testing.app/Contents/Frameworks
b)cptesting.1.dylibtesting.app/Contents/Frameworks
- 在 Xcode 中我更新了
Runtime Search Paths
目标和项目均为:@executable_path/../Frameworks。
现在,我将 test.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:无法在文件:testing.1.dylib 中查找偏移量:0 进行写入(错误文件描述符)
install_name_tool:无法在文件中写入新标头:testing.1.dylib(错误文件描述符)
install_name_tool:无法关闭写入输入文件:testing.1.dylib(错误文件描述符)
您不需要将库复制到项目中。
你不应该需要使用sudo
更改您拥有的文件的安装名称。您不拥有该库文件吗?也许您在某些第三方项目上执行了“sudo make install”?只是不要安装它并链接到构建目录中的那个。如果您正在构建此库,那么您应该在使用链接命令的命令行选项构建它时设置其安装名称。
预计将库添加到目标会导致其链接,但不会自动导致其被复制。您也可以创建一个复制文件构建阶段并将库添加到其中。
您不需要设置运行路径搜索路径,除非您使用@rpath
基于安装名称。
我怀疑 Xcode 实际上正在链接您复制的库from在步骤 1 中,而不是您制作的副本以及您随后修改的安装名称。构建记录中的实际链接命令说什么?您在步骤 1 中从哪里复制了库?如果它来自 /usr/lib 或 /usr/local/lib,那么 Xcode 可能会对其进行链接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)