Eri*_*ner 41 c xcode objective-c static-libraries
我在这个问题上尝试了这种方法,但似乎linux版本ar与mac版本不同,因为我无法再次组合目标文件.
我基本上想要做的是通过运行脚本构建阶段将另一个静态库合并到我的Xcode静态库构建产品中.
不幸的是我无法将其他库直接编译到我的项目中,因为它有自己的构建系统(因此我使用已编译的库).
我认为应该可以将其他库合并ar到Xcode生成的库中而不反编译构建产品.我该如何做到这一点?
Bru*_*uce 75
你可以libtool用来做
libtool -static -o new.a old1.a old2.a
Run Code Online (Sandbox Code Playgroud)
如果要处理多体系结构静态库,则需要一些额外的操作来精简每个库,组合精简的版本,然后增加结果。这是一个方便的脚本,您可以对其进行编辑以满意的方式完成所有这些工作。这个例子有三个iOS的图书馆path/to/source/libs/libone.a,path/to/source/libs/libtwo.a以及path/to/source/libs/libthree.a和它们合并成一个单一的库libcombined.a。
#! /bin/bash
INPATH="path/to/source/libs"
LIBPREFIX="lib"
LIBS="one two three"
LIBEXT=".a"
OUT="combined"
ARCHS="armv7 armv7s arm64"
for arch in $ARCHS
do
for lib in $LIBS
do
lipo -extract $arch $INPATH/$LIBPREFIX$lib$LIBEXT -o $LIBPREFIX$lib-$arch$LIBEXT
done
INLIBS=`eval echo $LIBPREFIX\{${LIBS// /,}\}-$arch$LIBEXT`
libtool -static -o $LIBPREFIX$OUT-$arch$LIBEXT $INLIBS
rm $INLIBS
done
OUTLIBS=`eval echo $LIBPREFIX$OUT-\{${ARCHS// /,}\}$LIBEXT`
lipo -create $OUTLIBS -o $LIBPREFIX$OUT$LIBEXT
rm $OUTLIBS
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16438 次 |
| 最近记录: |