gpt4 book ai didi

c++ - 链接器的分治法

转载 作者:搜寻专家 更新时间:2023-10-31 01:04:45 25 4
gpt4 key购买 nike

我有多个文件(>300 个目标文件),它们需要用“ld”命令链接。现在,我浪费了很多时间,等待链接过程完成(这个过程并不总是会成功)。

我有下一个问题:我可以使用“分而治之”的方法进行链接吗?将每对目标文件(例如 objfile1.o 和 objfile2.o)链接到单个目标文件(例如 objfile1-2.o)中。在它为每一对对象应用这个方案之后。此外,链接上一阶段获得的每一对对象,依此类推。最后,将几个对象(可能是一对)链接到一个结果文件中。

我可以使用此方案进行链接(使用 ld)吗?

最佳答案

二进制拆分可能不是一个好主意,但你可能可以通过将应用程序分解成几个共享对象,并链接到那些。链接时针对共享对象,链接器实际上不必将数据复制到可执行文件中,但只检查共享对象确实定义了所需的符号。

不过,300 个目标文件并不多,应该不会减慢速度降低那么多,至少在现代系统中,至少如果他们在本地驱动器上。 (回到过去,当一切都在远程驱动器上,我们过去常常设置我们的makefiles 以便链接阶段在文件服务器上运行,而不是在我们的本地机器上。这可以加快速度10 倍或更多。)

关于c++ - 链接器的分治法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383628/

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