【发布时间】:2012-11-15 20:05:34
【问题描述】:
假设你有
- 预构建的 iOS 可执行应用程序(用于模拟器或设备)。
- 一个预构建的静态存档库静态库,其中包含 c++ 静态初始化程序。
现在应该可以合并两个构建的产品以生成一个新的 iOS 可执行文件,它与旧的一样,只是它现在还与附加的静态库链接,并且在执行时将运行静态库的静态初始化器。
哪个工具(如果有)可以帮助解决这个合并问题?
编辑:一个可接受的解决方案也是使用 dlopen 动态加载库。这样做的全部目的是为了应用程序测试,所以重新链接的应用程序永远不会看到应用程序商店。
【问题讨论】:
-
听起来你应该可以用标准链接器来做一些事情。不过,我已经很多年没有做过类似的事情了。一个好的开始是手册页,通过命令行查找静态链接库的一些示例,并开始查看将基本项目与添加的库链接的命令行输出。
-
不,标准链接器 ld 无法与可执行文件链接:
ld: can't link with a main executable for architecture i386 -
如何在没有静态库的情况下首先构建 ios 应用程序?我在这里有点困惑......
-
问题是我没有项目源代码。其他人构建了 ARM .ipa 或 i386 .app,我想在二进制文件上链接静态(或动态加载)库。这是出于测试目的。
-
类似的事情可以通过反汇编、破解汇编语言和重建来完成。一项巨大的工作,结果令人怀疑。如果这样做是所涉及的许可证甚至允许的。而@slycrel,链接器不会为你做这件事。为什么会呢,它的用例完全不同。