gpt4 book ai didi

static-libraries - gnu ld 链接整个目标文件还是只链接所需的函数?

转载 作者:行者123 更新时间:2023-12-04 23:25:30 27 4
gpt4 key购买 nike

我们有一个库和一个可执行文件,即静态链接到该库。我们希望最小化最终可执行文件的程序空间。

根据 avr-libc 的文档:

the linker links in THE ENTIRE OBJECT MODULE in which the function is located



另一方面,我的同事们一致认为,在某些时候,链接器会丢弃所有未使用的函数。

那么谁是正确的,或者我误解了什么?答案在整个 gcc 中是否一致,还是我们在这里只讨论 avr 端口?

最佳答案

除非您告诉它,否则它不会执行死代码剥离。为此,您需要使用以下命令编译所有内容:

-fdata-sections -ffunction-sections

以便标记所有数据和功能。与 GCC 链接时,您需要通过:

-Wl,--gc-sections

为了垃圾收集所有未使用的部分。

关于static-libraries - gnu ld 链接整个目标文件还是只链接所需的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13525889/

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