Linker 是否可以将库链接到一个库中,并解析内部函数调用?

Linker 是否可以将库链接到一个库中,并解析内部函数调用?,linker,g++,Linker,G++,我正在开发一个包含数百个可执行项的系统。每个可执行文件静态地完全链接到各种.a库中。共享库现在不是一个选项。完全重建相当缓慢。瓶颈似乎是链接,因为每个可执行文件都必须重新链接,而且有数百个 是否可以为解析内部函数调用的所有库创建一个“主”库,然后在链接二进制文件时使用此主库?这个想法是,由于内部库调用已经解决,因此可以节省时间。(图书馆之间有许多电话) 我们不使用clang,我不认为增量链接是一种选择 是否可以创建“主”库 当然:ld-r-o master.o——整个归档libfoo.a lib

我正在开发一个包含数百个可执行项的系统。每个可执行文件静态地完全链接到各种.a库中。共享库现在不是一个选项。完全重建相当缓慢。瓶颈似乎是链接,因为每个可执行文件都必须重新链接,而且有数百个

是否可以为解析内部函数调用的所有库创建一个“主”库,然后在链接二进制文件时使用此主库?这个想法是,由于内部库调用已经解决,因此可以节省时间。(图书馆之间有许多电话)

我们不使用clang,我不认为增量链接是一种选择

是否可以创建“主”库

当然:
ld-r-o master.o——整个归档libfoo.a libbar.a…
应该可以

您的每个二进制文件都很有可能变大()

此外,如果您使用的是
ELF
,则使用(新)链接可能会获得更快的链接

最后,如果您正在构建一台具有大量RAM的功能强大的机器(您应该这样做),那么运行
make-j12
或更高版本应该通过并行执行多个链接来大大加快速度。这需要正确的
Makefile
结构和正确的依赖项(为了保证构建的正确性,您应该拥有这些依赖项)

是否可以创建“主”库

当然:
ld-r-o master.o——整个归档libfoo.a libbar.a…
应该可以

您的每个二进制文件都很有可能变大()

此外,如果您使用的是
ELF
,则使用(新)链接可能会获得更快的链接

最后,如果您正在构建一台具有大量RAM的功能强大的机器(您应该这样做),那么运行
make-j12
或更高版本应该通过并行执行多个链接来大大加快速度。这需要正确的
Makefile
结构和正确的依赖项(为了保证构建的正确性,您应该拥有这些依赖项)