lcc编译大型exe

时间:2012-08-16 07:10:17

标签: c lcc-win32

我在记事本中写了这个,然后用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,那就太糟糕了。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这是一个非常简单的问题,lcc-win发生的事情与C Compiler Digital Mars相同,他没有将exe链接到包含函数printf等的dll,函数与EXE链接在一起,所以没有requerindo你的计算机有DLL。

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

enter image description here

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

enter image description here

使用此样式的函数定义更快,然后进行dll调用....