【发布时间】:2013-07-23 15:28:53
【问题描述】:
我正在使用一个胖静态库,它使用 dlopen() 在静态库中加载内部模块(.so) 文件。在 stackoverflow 上,开发人员说 dlopen() 是一个私有 API。
在这种情况下,可以使用 dlopen() 或作为私有 API,无论库的性质如何(即静态/动态),它都不应该在用户库中使用。
如果我不能使用 dlopen() ,那么有人可以指向任何资源以获取完成相同任务的替代方法。
注意:这是关于 baresip BSD 库。 (http://www.creytiv.com/)
更新: 库首先尝试静态加载所有配置的模块,如果失败,则尝试使用 dlopen() 动态加载它们。所以删除动态加载代码将解决我的问题。
【问题讨论】:
-
Apple 不允许您在应用程序中执行动态链接。此外,任何使用未记录的方法都是拒绝的理由。
-
我接受此作为答案,但我无权将此标记为答案。
-
那是因为它不是一个答案。这是一条评论;)。
-
你有没有成功链接到baresip?这是一个真正的宝石,我们将依赖它,但现在我完全被这个问题所困扰。如果是,你能分享你的解决方案吗?
-
@VictorSergienko 抱歉,我没有在登录时使用 SO,因此无法看到您的 cmets。我用 baresip 创建了一个 xcode ios 项目,去年测试时语音通话工作正常。
标签: ios static-libraries sip dlopen baresip