将几个静态归档组合成一个新的归档

时间:2010-04-18 13:50:23

标签: c++ linux makefile

我正在为移动设备制作游戏引擎。我想编译我的代码,将它链接到一些静态库,然后将我的编译代码与这些静态库结合起来形成一个新的静态库。但是,我的Google Fu正在抛弃我。

假设我有静态库a.ab.ac.a以及我的代码。我想把所有这些编译成awesome.a

我该怎么做?

顺便说一下,我正在使用CodeSourcery的arm-none-linux-gnueabi-ar

提前致谢。

2 个答案:

答案 0 :(得分:3)

假设a.ab.ac.a位于CWD中,例如:

mkdir a-objs && ( cd a-objs && ar -x ../a.a )
mkdir b-objs && ( cd b-objs && ar -x ../b.a )
mkdir c-objs && ( cd c-objs && ar -x ../c.a )
rm -f awesome.a && ar -r awesome.a a-objs/* b-objs/* c-objs/* && ranlib awesome.a

应该有用。

答案 1 :(得分:0)

如果要将代码放入静态库,则不要链接它。但是静态库根本没有链接。为方便起见,它只是一个放在一个文件中的目标文件集合。

您可以创建目标文件,并将它们放入库中。如果你想将你的目标文件添加到现有的库中而不是创建一个新文件库,那就相当简单(尽管现有的库已经足够了解任何人对它的作用或不包含,我想说添加人们不会想到的新东西可能是一个坏主意。