【发布时间】:2014-02-06 06:43:58
【问题描述】:
我已经用nasm 组装了一个简单的代码,并用ld 和golink 链接了输出obj 文件
问题是
golink 输出可执行文件大小为2kb
但
ld 输出可执行文件大小为85kb
我正在使用 mingw32,两者都在使用库 kernel32.dll。
链接命令是:
golink /entry _start /console test.obj kernel32.dll
&
gcc test.obj-L kernel32.dll
那么为什么尺寸会有这么大的差异呢?
我做错了吗?请您赐教。
【问题讨论】:
-
您可能正在链接 C 库,请尝试
gcc -nostdlib。 -
使用 -nostdlib 选项文件大小减小到 5.02kb...但是使用 -nostdlib 选项我可以使用像 _printf 这样的功能吗?
-
像 _printf 这样的函数是 C 标准库的一部分,如果不链接 C 标准库,就无法使用它们。
标签: windows assembly linker nasm ld