LD Linker的输出可执行文件大于Golink输出可执行文件,原因



我已经与nasm组装了一个简单的代码,并使用ldgolink链接的输出OBJ文件问题是GOLINK输出可执行文件是大小的2kb但LD输出可执行文件是大小的85kb

我正在使用mingw32,并且都使用库kernel32.dll

链接命令是:

golink /entry _start /console test.obj kernel32.dll

&

gcc test.obj-L kernel32.dll

那么,为什么大小差异很大?

我做错了什么吗?你能启发我吗?

用GCC击中2KB可执行大小,运行以下:

gcc test.obj -nostartfiles -s
与Golink Linker相比,

GCC默认情况下包含更多数据。简单的gcc命令包含一个符号表,重定位信息和其他一些引用。我们使用-s标志删除符号表和重新定位信息,以及-nostartfiles标志以停止使用标准系统启动文件(引用其他内容)。

最新更新