gpt4 book ai didi

objective-c - Xcode 4 添加动态库

转载 作者:太空狗 更新时间:2023-10-30 03:15:26 26 4
gpt4 key购买 nike

我正在尝试创建 dylib,然后将其添加到项目中。我通过使用“Cocoa-Library”模板并将类型设置为“动态”来创建它(不确定它应该是动态的还是静态的......)。然后,我创建了一个名为 Test 的简单 obj-c 类,并在其中编写了一个方法来打印一些内容以进行控制台。

我编译使用了生成的.dylib文件,放到了另一个项目中。现在每当我尝试使用它时,我都会在运行时收到此消息”

dyld: Library not loaded: /usr/local/lib/TESTLib.dylib
Referenced from: /Users/***/Library/Developer/Xcode/DerivedData/TestingDYLIB-axmoocnxbwznoyerfogosumqufxc/Build/Products/Debug/TestingDYLIB.app/Contents/MacOS/TestingDYLIB
Reason: image not found

我还创建了一个复制文件阶段并将目标设置为“框架”。我仍然遇到同样的错误。我做错了什么?

最佳答案

问题不在于 Xcode 在编译时在哪里寻找库,这是 Simon Whitaker 的回答所解决的问题。

问题是使用 dylib 的应用程序无法在运行时找到它。当构建使用动态库的应用程序时,它会将 dylib 的 install_name 复制到输出二进制文件中。

创建复制文件阶段并将 dylib 复制到应用程序包的 Frameworks 子目录是正确的做法。

但是,您需要执行额外的步骤。您需要使用适合捆绑应用程序的 install_name 来编译动态库。默认情况下,动态库是使用/usr/local/lib 的 install_name 创建的。该应用程序无法在那里找到您的图书馆,因为它不存在。即使您将库放在那里,您的用户肯定不会拥有它,所以那将是错误的解决方案。

正确的解决方案是将库与应用捆绑在一起。要设置动态库的安装名称,请进入动态库项目并将“动态库安装名称”选项设置为:@executable_path/../Frameworks/libmydynamiclibrary.dylib

关于objective-c - Xcode 4 添加动态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com