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

发布于 2024-08-29 11:10:04 字数 311 浏览 3 评论 0原文

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

假设我有静态库 aabaca 以及我的代码。我想将所有这些编译到 awesome.a 中。

我怎样才能做到这一点?

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

提前致谢。

I'm making a game engine for mobile devices. I want to compile my code, link it against a few static libraries and then combine my compiled code with those static libraries to form a new static library. However, my Google Fu is abandoning me.

Suppose I have static libraries a.a, b.a and c.a and my code. I want to compile all that into awesome.a.

How can I do that?

I'm using CodeSourcery's arm-none-linux-gnueabi-ar by the way.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等风也等你 2024-09-05 11:10:04

假设 aabaca 位于 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

应该有效。

Assuming that a.a, b.a, and c.a are in the CWD, something like:

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

should work.

深巷少女 2024-09-05 11:10:04

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

您创建目标文件,并将它们放入库中。如果您想将目标文件添加到现有库中而不是创建一个新库,那么这是相当微不足道的(尽管如果现有库足够为人所知,任何人都对其功能有期望或不包含,我想说添加人们不知道会期待的新东西可能是一个坏主意)。

If you want to put code into a static library, you do NOT link it. A static library isn't linked at all though. It's just a collection of object files put into a single file for the sake of convenience.

You create object files, and put them into the library. If you want to add your object files into an existing library instead of creating a new one, that's fairly trivial to (though if the existing library is well enough known for anybody to have expectations about what it does or doesn't contain, I'd say it's probably a bad idea to add new things people won't know to expect).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文