问题标签 [lipo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
90933 浏览

ios - Xcode 12.3:为 iOS 模拟器构建,但链接和嵌入式框架是为 iOS + iOS 模拟器构建的

我有一个使用链接和嵌入式自定义框架的应用程序。在 Xcode 12.2 之前,该应用程序为 iOS 设备和模拟器正确构建。但是,从 Xcode 12.3 开始,我收到以下错误:

Building for iOS Simulator, but the linked and embedded framework 'My.framework' was built for iOS + iOS Simulator.

该框架是为设备和模拟器构建的(正如错误实际上所说)并使用 合并lipo,因此它应该能够在任何地方运行而不会出现问题。

我在这里错过了什么吗?Xcode 12.3 是否有任何相关变化?

0 投票
0 回答
89 浏览

swift - 错误:lipo:尝试运行项目时未指定文件

我在编译项目时收到此错误。这只会发生在我身上。我的其他同事没有这个问题。

PatronSDK 是嵌入项目的框架,不是 Pod。我试图搜索指定的目录,我意识到缺少一个文件及其 PatronSDK。该文件是在我同事的项目中自动创建的,但是在编译完成后我的项目中丢失了。

我试图将文件手动添加到目录中。进行干净的构建,但结果相同。编译后,目录中缺少该文件。

我还尝试删除派生数据,删除 Xcode 并再次安装,再次克隆其他路线中的项目,但问题始终相同

有谁知道我该如何解决这个问题?我的选择已经不多了

0 投票
2 回答
323 浏览

xcode - 为 Apple M1 和较旧的英特尔设备构建 FFTW

我在我的 Apple m1 电脑上构建了 FFTW 。当我运行时lipo -info libfftw3.a(位于.libs/libfftw3.a)。它说它是架构ARM64

在我的 Xcode 中,我将构建目标设置为 10.11,以实现向后兼容性。

现在,当我将 FFTW 库添加到我的 Xcode 项目中时,它会抱怨:

链接库“libfftw3.a”缺少此目标所需的一个或多个架构:x86_64。

我该如何解决这个问题?我是否需要在英特尔设备中构建库并将这两个库一起创建一个通用库(使用lipo)或者解决这个问题的正确方法是什么?

0 投票
0 回答
36 浏览

ios - 如何通过 swift 在调试视图层次结构中使用 lipo 命令

在 Objective-C 中,我可以使用以下命令来查看一些视图对象的属性:

但是当我用 Swift 开发项目时,我做不到。当我使用这个命令时,Xcode 只打印0x10daab000对象,就好像我在使用po 0x10daab000.

此外,我无法contentInset使用类似 swift 的语法访问此处,即0x10daab000.contentInset. 但我认为这是正常的。

我认为应该可以在 Swift 项目中和在 Objective-C 项目中做同样的事情,对吧?因此,如果有人知道如何做到这一点,那么我将不胜感激。

0 投票
1 回答
101 浏览

ios - Cannot lipo arm64 .a files of iOS device with iOS simulator on Apple Silicon

Shell commands as below,

How to lipo multiple arm64 .a files of iOS device and iOS simulator (on Apple Silicon, e.g. M1) into one single .a file?

0 投票
1 回答
45 浏览

macos - lipo-thin 和-extract 的区别

lipo -thin arch_type用于从胖静态库中获取“单一架构”静态库以及lipo -extract arch_type [-extract arch_type...]何时用于获取“单一架构”静态库有什么区别?

文档说:

-extract arch_type [-extract arch_type...]
获取一个通用输入文件并将该通用文件中的 arch_type 复制到仅包含该体系结构的通用输出文件中。此命令需要 -output 选项。

-thin arch_type
获取一个输入文件并使用指定的arch_type 创建一个精简输出文件。此命令需要 -output 选项。

但在我看来,这似乎只是-extract允许提取多个架构,而-thin一次只允许一个架构。
这两个命令的结果是一样的还是我遗漏了什么?

0 投票
0 回答
23 浏览

ios - 为模拟器和包含 arm64 的设备(也针对 M1 模拟器)构建单个 .a 可能吗?

在尝试为模拟器和设备构建胖静态库时,我们遇到了 lipo/libtool 的问题。在 M1 arm64 之前,设备使用 armv7/arm64 切片,模拟器使用 x86_64 切片,一切正常。现在 lipo 无法发现模拟器的 arm64 构建和设备的 arm64 构建之间的差异,并且拒绝添加 2 个 arm64 切片。

  1. 有没有办法构建一个“通用”arm64 lib slice(因为我们的 lib 中的代码与平台无关)

  2. 是否有其他工具可以实现将 2 个 arm64 切片打包到 .a 中,还是我们现在需要为模拟器和设备构建 2 个单独的静态库?(请注意,我们不使用 Xcode 进行构建,所以我们只是在命令行上链接)。

  3. 有趣的是,当链接到诸如 libxml 之类的动态标准库时,无论平台如何, -lxml 就足够了,但这是用于动态库,而不是静态库。静态库是否存在类似的机制?