gpt4 book ai didi

c++ - 两次链接库和可执行文件的大小

转载 作者:太空狗 更新时间:2023-10-29 23:36:26 25 4
gpt4 key购买 nike

当使用静态库编译程序时,许多来源(包括 SO 社区)向我建议将库包含两次。

如:

gcc main.c -lslA -lslB -lslC -lslA -lslB -o final
  1. 这是否会导致更大的可执行文件(即链接器是否足够智能以避免双重包含?)。

  2. 这是(多重包含)正确的解决方案还是解决方法(即是否总是存在更合适的,即使更难处理它的方法)

最佳答案

多次包含该库的唯一原因是,例如,如果 slA 需要由 slB 解析的符号,但 slB 需要一个slA 要求的符号。链接器执行一次解析符号,但重复您的库实际上会导致对该库进行第二次解析。它不会改变输出的大小,但也不是必需的:

无需多次显示您的库,您可以告诉 gcc 链接器将某些库组合在一起——让它做它需要的事情来解析该组中的符号。例如:

gcc main.c -Wl,--start-group -lslA -lslB -lslC -Wl,--end-group -o final

关于c++ - 两次链接库和可执行文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15946861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com