【问题标题】:Why some libraries need to be embedded and some other not?为什么有些库需要嵌入而有些则不需要?
【发布时间】:2018-12-04 22:09:02
【问题描述】:

在ios中,我不明白为什么有些库需要嵌入(如WebRTC)而有些则不需要(如facebook)?

【问题讨论】:

    标签: ios xcode webrtc


    【解决方案1】:

    Facebook 的框架是静态库。这在 iOS 中有点不寻常;大多数东西都是动态库。静态库是在构建时而不是在加载时链接的,因此您不需要嵌入它们。

    【讨论】:

    • 谢谢!您是否如何(手动)在项目(不是用 xcode 制作的)中嵌入动态库?我们只需要使用应用程序部署库吗?
    • 如果您手动构建它们,那么您需要将库放在您链接到的目录中(相对于@rpath)。这通常在框架中,但这取决于您构建应用程序的方式。应用程序上的otool -L 会告诉您它希望从哪里加载库。
    • 我刚做了,otool -L ALLiveVideoChatClient.app/ALLiveVideoChatClient 返回我:@rpath/WebRTC.framework/WebRTC(兼容版本0.0.0,当前版本0.0.0)....什么是@rpath 的值吗?我确实像你说的那样,将库放在框架中(ALLiveVideoChatClient.app/Frameworks/WebRTC.framework/WebRTC),但它在加载时总是失败:@rpath/WebRTC.framework/WebRTC:找不到图像:(所以也许我的rpath 不好,但是如何从链接器更新它?
    • 我总是收到此错误:DYLD,未加载库:@rpath/WebRTC.framework/WebRTC |引用自:/var/containers/Bundle/Application/E60EAD9F-0CB6-4B13-80B3-3ED71B562BAB/ALLiveVideoChatClient.app/ALLiveVideoChatClient |原因:找不到图像,但我很好地复制了 ALLiveVideoChatClient.app/Frameworks/WebRTC.framework/WebRTC 中的库,所以我做错了什么?也许我需要设置@rpath?如何检查它的价值?
    • stackoverflow.com/questions/24045633/… 如果您在链接时遇到问题,您需要打开一个新问题,说明您的构建方式以及遇到的问题。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多