我正在使用一个生成动态库(Cocoa API)的现有项目。
我宁愿生成一个静态库,但是如果我将 [Linking|Mach-O Type] 字段从“动态库”更改为“静态库”,则 Clean Project 和 Build Project 都会抱怨目标的MACH_O_TYPE
值无效'静态库'。
有没有一种直接的方法可以让构建生成静态 .a 文件?
谢谢,
埃里克
我正在使用一个生成动态库(Cocoa API)的现有项目。
我宁愿生成一个静态库,但是如果我将 [Linking|Mach-O Type] 字段从“动态库”更改为“静态库”,则 Clean Project 和 Build Project 都会抱怨目标的MACH_O_TYPE
值无效'静态库'。
有没有一种直接的方法可以让构建生成静态 .a 文件?
谢谢,
埃里克
使用 TextEdit打开YourProjectName.xcodeproj文件夹中的project.pbxproj文件,搜索productType并将其值从“ com.apple.product-dynamic ”更改为“ com.apple.product-static ”
我最终创建了一个新的“静态库”项目,然后添加了所有成员。关闭 xcode 并在文本编辑器中调出两个项目文件让我快速完成新项目。
在这篇文章的帮助和一些挖掘的帮助下,我设法做到了这一点。我必须进行的其他更改是将compiled.mach-o.dylib更改为archive.ar并将项目文件中的各种引用(包括内部注释,称我为书呆子)从foo.dylib 更改为libfoo.a。
我还必须在构建之前创建一个新的“方案”,但这可能是因为我更改了项目的名称,我不确定。此外,当您从 .dylib 移动到 .a 时,需要将库引用的任何框架添加到链接到它的应用程序中。
尽管它保留了原始项目的所有细节(例如构建一个 32/64 fat 二进制文件用于发布但不用于调试),但还是值得坚持下去。结果。
您必须更改两个设置:
a
这在 Xcode 13.1 上对我有用。
删除您的构建目标,然后创建一个新目标,选择“库”并确保选择“静态”类型。在此之后,您只需再次添加源和依赖项。