我们有一个库和一个可执行文件,那就是静态地链接到库。我们希望最小化最终可执行文件的程序空间。
根据 avr-libc 的文档:
链接器链接该函数所在的整个对象模块 http://www.nongnu.org/avr-libc/user-manual/library.html
另一方面,我的同事们一致认为,在某些过程中,链接器会丢弃所有未使用的函数。
那么谁是正确的还是我误解了什么?整个 gcc 的答案是一致的还是我们这里只讨论 avr 端口?
除非您告诉它,否则它不会执行死代码剥离。为此,您需要使用以下命令编译所有内容:
-fdata-sections -ffunction-sections
以标记所有数据和功能。当与 GCC 链接时,您需要传递:
-Wl,--gc-sections
为了垃圾收集所有未使用的部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)