gpt4 book ai didi

objective-c - 如何从 iOS 库中提取目标文件(在 Mac 上)?

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:26 24 4
gpt4 key购买 nike

我有一个第三方 iOS 库,它可以在我的应用程序和模拟器中正常链接和运行。我正在尝试从中提取目标文件,以便将其与另一款第三方软件集成,后者使用自己的代码重新打包目标文件。但是,我无法通过 ar 提取目标文件;我一直收到错误消息“不合适的文件类型或格式”。

有问题的库是一个包含 armv7、armv7s 和 i386 的胖库。 Stock lipo 不知道我机器上的 armv7s,但 Xcode 知道:

$ lipo -info library.a
Architectures in the fat file: library.a are: armv7 (cputype (12) cpusubtype (11)) i386
$ xcrun -sdk iphoneos lipo -info library.a
Architectures in the fat file: library.a are: armv7 armv7s i386

我可以用 lipo 成功地瘦身:

$ xcrun -sdk iphoneos lipo library.a -thin armv7 -output library-armv7.a
$ xcrun -sdk iphoneos lipo -info library-armv7.a
Non-fat file: library-armv7.a is architecture: armv7

但是,即使在细化之后,我也无法使用 ar 操作它:

$ xcrun -sdk iphoneos ar -tv library-armv7.a 
ar: library-armv7.a: Inappropriate file type or format
$ xcrun -sdk iphoneos ar -xv library-armv7.a
ar: library-armv7.a: Inappropriate file type or format

我在 OS X 10.8.2、Xcode 4.6 上安装了开发工具。

对于这个麻烦的库,我可以采取任何额外的步骤吗?

更新以回应 Martin 的评论

file 显示以下内容:

$ file library.a
library.a: Mach-O universal binary with 3 architectures
library.a (for architecture armv7): Mach-O object arm
library.a (for architecture cputype (12) cpusubtype (11)): Mach-O object arm
library.a (for architecture i386): Mach-O object i386
$ file library-armv7.a
library-armv7.a: Mach-O object arm

看起来它根本不是图书馆!

最佳答案

“库”实际上不是一个库,而是一个目标文件本身。没有进一步提取。

关于objective-c - 如何从 iOS 库中提取目标文件(在 Mac 上)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15392700/

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