结合静态库

我在此问题中尝试了该方法,但ar由于无法再次合并目标文件,因此的linux版本似乎与mac版本不同。


我基本上想要做的是通过运行脚本构建阶段将另一个静态库合并到我的Xcode静态库构建产品中。


不幸的是,我无法将另一个库直接编译到我的项目中,因为它具有自己的构建系统(因此,我使用已编译的库)。


我认为应该可以将其他库合并ar到Xcode生成的库中,而无需反编译生成产品。我该如何完成?


HUX布斯
浏览 344回答 3
3回答

ITMISS

你可以libtool用来做libtool -static -o new.a old1.a old2.a

繁花不似锦

如果要处理多体系结构静态库,则需要一些额外的操作来精简每个库,组合精简的版本,然后增加结果。这是一个方便的脚本,您可以对其进行编辑以满意的方式完成所有这些工作。这个例子有三个iOS的图书馆path/to/source/libs/libone.a,path/to/source/libs/libtwo.a以及path/to/source/libs/libthree.a和它们合并成一个单一的库libcombined.a。#! /bin/bashINPATH="path/to/source/libs"LIBPREFIX="lib"LIBS="one two three"LIBEXT=".a"OUT="combined"ARCHS="armv7 armv7s arm64"for arch in $ARCHSdo  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 $INLIBSdoneOUTLIBS=`eval echo $LIBPREFIX$OUT-\{${ARCHS// /,}\}$LIBEXT`lipo -create $OUTLIBS -o $LIBPREFIX$OUT$LIBEXTrm $OUTLIBS

慕斯王

您应该用来ar -r在MacOS上创建档案:ar -x libabc.aar -x libxyz.aar -r libaz.a  *.o
打开App,查看更多内容
随时随地看视频慕课网APP