Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将多个静态档案合并为一个新档案_C++_Linux_Makefile - Fatal编程技术网

C++ 将多个静态档案合并为一个新档案

C++ 将多个静态档案合并为一个新档案,c++,linux,makefile,C++,Linux,Makefile,我正在为移动设备制作一个游戏引擎。我想编译我的代码,将它与几个静态库链接起来,然后将编译后的代码与这些静态库结合起来,形成一个新的静态库。然而,我的谷歌富却抛弃了我 假设我有静态库a.a,b.a和c.a以及我的代码。我想把所有这些编译成awesome.a 我该怎么做 顺便说一下,我正在使用CodeSourcery的ARMNone linux gnueabi ar 提前感谢。假设CWD中有a.a、b.a和c.a,类似于: mkdir a-objs && ( cd a-objs &a

我正在为移动设备制作一个游戏引擎。我想编译我的代码,将它与几个静态库链接起来,然后将编译后的代码与这些静态库结合起来,形成一个新的静态库。然而,我的谷歌富却抛弃了我

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

我该怎么做

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


提前感谢。

假设CWD中有
a.a
b.a
c.a
,类似于:

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

应该有效。

假设CWD中有
a.a
b.a
c.a
,类似于:

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

应该可以工作。

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


创建对象文件,并将其放入库中。如果您想将对象文件添加到现有库中,而不是创建一个新的库,这对您来说是相当简单的(尽管如果现有库非常有名,任何人都对它包含的内容或不包含的内容抱有期望,我认为添加人们不知道的新内容可能是个坏主意).

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


创建对象文件,并将其放入库中。如果您想将对象文件添加到现有库中而不是创建一个新库,这对您来说是相当简单的(尽管如果现有库非常有名,任何人都对它包含的内容或不包含的内容抱有期望,我想说,添加人们不知道的新内容可能是个坏主意)。

啊,好吧,但是我可以把它和我的编译代码(my.o’s)结合起来吗?好吧,有点笨重,但这是可行的:$(YG_ARCHIVER)-vq$(PROGS)$^&$(YG_ARCHIVER)-vr$(PROGS)$(YG_库)。所以它编译了我的静态库,然后将其他库添加到其中。啊,好的,但是我可以将它与我的编译代码(my.o’s)结合起来吗?好的,有点笨重,但这是有效的:$(YG_ARCHIVER)-vq$(PROGS)$^&$(YG_ARCHIVER)-vr$(PROGS)$(YG_库)。因此,它编译我的静态库,然后将其他库添加到其中。