ios – OS X:将.dylib转换为.a / .o(动态到静态)?

前端之家收集整理的这篇文章主要介绍了ios – OS X:将.dylib转换为.a / .o(动态到静态)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我已经阅读了 this caveat,我仍然希望将TBB用作静态链接库. (假装我在 an environment工作,不允许用户创建自己的dylib.)但我真的不想重写TBB makefile来生成libtbb.a而不是libtbb.dylib.

是否有一个简单的命令行方式将libtbb.dylib转换为libtbb.o并使用相同的入口点?

我听到了一个很好的论据,因为从静态到动态不能走另一条路.即:动态库需要是PIC,将非PIC静态库转换为PIC是不可行的.但据我所知,这一论点并不适用于其他方向.

Here’s有人说在Windows上将.dll转换为.a是不可能的,但我认为他们只是在谈论将.dll或.exe备份到其原始的.o文件中的不可能性,并不一定说它不可能创建具有相同内容的可链接.o文件.此外,Windows上的情况是slightly odder than “real” PIC,虽然我不认为这是相关的.

解决方法

适用于Windows,Mac和Linux的英特尔线程构建模块(TBB)为 available as binary.如果您希望在iOS上使用Mac发行版中的libtbb.dylib,那么您就不走运了. Mac发行版针对英特尔(32位和64位).由于iOS在ARM处理器上运行,即使您找到了将动态库转换为静态库的方法,也无法使用它.

如果你找到一个针对ARM的其他目标的libtbb.dylib文件,那么你可以在iOS上使用它.实际上可以在iOS上加载动态库.看看dlopen(3)手册页.

最后,您应该阅读有关Grand Central Dispatch (GCD)内容,它内置支持iOS和OS X中多核硬件上的并发代码执行.

原文链接:https://www.f2er.com/iOS/329063.html

猜你在找的iOS相关文章