首页
社区
课程
招聘
[旧帖] [求助]如何让C语言编写的程序编译后尽可能的小 0.00雪花
发表于: 2011-4-24 18:54 1398

[旧帖] [求助]如何让C语言编写的程序编译后尽可能的小 0.00雪花

2011-4-24 18:54
1398
各位论坛中的朋友,大家好,我有一个疑问,如何让程序编译后,尽可能的小。一个简单的Hello World的大小就有50kb了,如何做到程序编译后尽量的小?我之前问了一个师兄,他说使用MT发布模式并且指定函数入口,我不是很理解他的意思。

我记得以前编写代码的时候,在程序中大量的使用字符串处理函数库中的函数memset、strcpy、strcat等等。师兄让我遇到这些函数时要重写,这样发布出去的软件的大小也可以减少。我只是照着做,一直不知道为什么,请了解的朋友帮我指导一下。不甚感激!!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 1820
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
加个压缩壳吧,方便
2011-4-24 19:15
0
雪    币: 24
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
呵呵,压缩壳算是后期处理,我主要想搞清楚从程序源头就先将软件大小控制到最小。
2011-4-24 19:20
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
使用/MD,就比较小,因为是动态连接的,但是有限制,会连到msvcrt.dll,如果你的代码不是vc 6编译的,连接到是msvcrtxx.dll,问题是有的机器没msvcrtxx.dll,而是msvcrt.dll,windows 95开始就系统自己带
指定函数入口以后你就不能用c运行时库的函数了,所以你师兄叫你重新写是因为不想连接到msvcrtxx.dll,这个文件不是系统自己带的
2011-4-24 19:40
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
一味的求小 应该用汇编写啊
如果写window应用程序的话  

用window api代替  CRT函数
比如  lstrlen 代替 strlen
lstrcmp 代替 strcmp

修改入口点 最多就省 20K左右吧 (这样修改  #pragma comment(linker, "/entry:main")
2011-4-24 19:59
0
雪    币: 24
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我记得师兄和你讲的差不多,也是讲到C运行时库的问题,不过一直没有搞懂,请大哥推荐关于这些知识相关的书籍,我想搞明白。我用vs2008编写的程序,貌似连接到msvcr90.dll
2011-4-24 20:01
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
7
http://bbs.pediy.com/showthread.php?t=26504
做个参考。
2011-4-24 20:48
0
雪    币: 24
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢您的指点!
2011-4-24 20:56
0
雪    币: 24
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有点明白了,谢谢这么多的牛人,我就知道,看雪论坛,我没白来!
2011-4-24 20:57
0
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
10
指定文件对其单位:
#pragma comment (linker, "/filealign:0x200")
2011-4-24 21:17
0
雪    币: 24
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
请问大哥,#pragma comment (linker, "/XXXXX")中的XXXXX规则是什么?在哪里查阅?
2011-4-24 21:30
0
雪    币: 859
活跃值: (304)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
12
当然是MSDN最权威:http://msdn.microsoft.com/en-us/library/7f0aews7(v=VS.71).aspx
常用的也就那么几个~~
2011-4-24 22:17
0
游客
登录 | 注册 方可回帖
返回
//