我在我的 Apple m1 计算机上构建了 FFTW。当我运行
lipo -info libfftw3.a
(位于 .libs/libfftw3.a
)时。它说它是架构ARM64。
在我的 Xcode 中,我将构建目标设置为 10.11,以实现向后兼容性。
现在,当我将 FFTW 库添加到我的 Xcode 项目中时,它会抱怨:
链接库“libfftw3.a”缺少一个或多个架构 该目标所需:x86_64。
我该如何解决这个问题?我是否需要在英特尔设备中构建库并使用这两个库一起创建通用库(使用
lipo
)或者解决此问题的正确方法是什么?
您也可以使用此行配置它,它将构建 x86_64 和 arm64 二进制文件。
./configure CFLAGS="-arch arm64 -arch x86_64 -mmacosx-version-min=11.0"
为了为 Intel 和 Apple 芯片架构构建静态库,我需要分别为两个架构构建 FFTW,然后创建一个通用库。这是我的做法。
转到 FFTW 根文件夹
专为英特尔架构构建
./configure --prefix=/path/to/build/folder/lib-intel CFLAGS="-arch x86_64 -mmacosx-version-min=10.11”
make
make install
./configure --prefix=/path/to/build/folder/lib-arm64 CFLAGS="-mmacosx-version-min=10.11”
make
make install
lipo -create path/to/build/folder/lib-intel/libfftw3.a path/to/build/folder/lib-intel/libfftw3.a -output libfftw3_universal.a
libfftw3_universal.a