我编写了一个hello world Go程序,它在我的linux机器上生成本机可执行文件.但我很惊讶地看到简单的Hello world Go程序的大小,它是1.9MB!
为什么Go中这样一个简单程序的可执行文件如此庞大?
如果在我的项目中根本没有使用外部包中的函数,编译器是否会从生成的机器代码中删除该函数?
这个问题可以针对任何语言编译器.但是,我认为这种行为可能因语言而异.所以,我有兴趣知道编译器会做什么.
理解这一点,我将不胜感激.
我正在使用去1.6(我需要更新).假设我在一个包中有2个文件,我在两个文件fmt中都使用了这个包.您必须fmt在这两个文件中显式导入,或者编译器抛出和错误,这是否意味着它将fmt二进制文件存储在我的可执行文件中两次?