4

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

根据 avr-libc 的文档:

函数所在的整个对象模块中的链接器链接

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

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

4

1 回答 1

9

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

-fdata-sections -ffunction-sections

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

-Wl,--gc-部分

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

于 2012-11-23T09:18:16.347 回答