自动选择静态库中的.o文件(.a文件)

Automatic selection of .o file in static library (.a file)

我正在开发一个静态库 (libfb.a) 文件,其中包含两个函数的多个实现:

所有的3个实现(...)都是不同的,因为如果同时需要foobar,那么两者它们可以相互利用,更有效地实施。

我如何将 .o 文件合并为 GNU ld 会自动选择的 .a 文件,即 gcc prog.c libfb.a

我试图使用弱符号和弱别名来做到这一点,但没有奏效。也许这是不可能的。有什么想法可以做到吗?

重复@A.Monti 的评论作为回答。

这不可能。您无法检测 prog.c 何时使用可用原语同时调用 foo 和 bar