gcc仅链接“必需的功能”

在编译C程序时,默认情况下gcc链接标准C库。为了将可执行文件的大小减小到最小程度,是否可以仅链接选定的函数(例如“ 0”)而不是完整的C标准库?     
已邀请:
        对于大多数传统的链接器,静态库链接是基于目标文件完成的。 gcc通常会在您使用的系统上使用系统链接器。 传统上,静态库只是由构成库的目标文件组成的存档文件。当您将静态库链接到程序中时,链接器将从库中提取任何有助于解决程序中任何未解析符号的目标文件,包括由库中目标文件引入的有助于解析先前未解析的符号的目标文件。 从理论上讲,如果标准库实现每个功能由一个目标文件组成,并且标准库函数之间没有任何依赖关系,那么您只会得到您明确调用的函数。在实践中,您获得的功能可能要比显式调用包含的功能更多。 动态链接是完全不同的。在这种情况下,您的程序将只包含对标准库共享对象的引用,该引用将在运行时全部加载到进程的内存空间中。     

要回复问题请先登录注册