C/C++ 怎么把多个静态库给整合成一个静态库?

来源:https://www.wikitechy.com/tutorials/linux/how-to-merge-two-ar-static-libraries-into-one

使用 libtool (这也是可移植性最强的方式)(但这通常要求两个子库也是 libtool 制作的)

libtool --mode=link cc -static -o libaz.la libabc.la libxyz.la

以下是 ar 版本,使用 -T 选项 (make a thin archive: 制作一个精简档案) (这种方法的缺点是,如果要分离这个档案,我们无法得到独立的目标文件) 需要注意的是:1. 这种方式创建的 “精简档案” 本质是对子静态库的索引,它必须保持和子静态库的相对位置,否则无法使用 2. 子静态库不能有错误,目前尚不确定的是子静态库是否能有 thin archive

ar -rcT libaz.a libabc.a libxyz.a

你可能感兴趣的:(C/C++)