-1

我在记事本中写了这个,然后lcc-win使用命令编译它lc hello.c

#include <stdio.h>
int main(void)
{
  printf("Hello World\n");
  return 0;
}

生成的 exe 为 100 KB。对于一个只打印的程序来说似乎有点巨大Hello World。这是正常的吗?我可以缩小尺寸吗?如今,100 KB 并不是一个真正的问题,但它的作用似乎仍然很大。如果我编写的每个 C 代码都以 100 KB 的 exe 形式出现,那也不会太糟糕。

4

2 回答 2

0

这是一个很简单的问题,lcc-win的情况和C Compiler Digital Mars一样,他没有将exe与包含函数printf等的dll链接,函数与EXE链接在一起,所以没有requerindo您的计算机具有 DLL。

看,我创建了一个简单的 Hello World EXE,并在 Hex Editor 中打开了 hin.... printf 函数存储在 msvcrt.dll 中,并且,exe 在导入部分没有这个 dll...

在此处输入图像描述

而且,您可以在另一张图片中找到源定义:

在此处输入图像描述

使用这种风格的函数定义比调用 dll 更快....

于 2014-08-30T12:17:17.997 回答
0

1-每次使用include <>标签时,您都会与 ac 库建立链接并将其加载到您的程序中。这也是为什么只包含在实际需要库函数的文件中很重要的原因。

2-另一方面,您生成的二进制文件总是充满了重要信息(cf:libelfASM),标题,如果您想编程运行良好,则需要在这里执行步骤。这确实需要空间。

于 2012-08-16T08:14:05.880 回答