经试验,最简单,有效的方法为:
1.编译Release版
2.工程设置->Win32 Release->C/C++->Code Generation->Use run-time library:->Multithreaded DLL
3.工程设置->Win32 Release->连接->工程 选项[o]: 最后面加上“/OPT:NOWIN98” (不包含引号)
或在代码中添加:
#pragma comment (linker, "/OPT:NOWIN98")
如想更加减少程序体积:
更多可参考:
http://bbs.pediy.com/showthread.php?threadid=28058
http://bbs.pediy.com/showthread.php?t=26504
http://bbs.pediy.com/showthread.php?s=&threadid=19823
以下摘自:http://bbs.csdn.net/topics/320019442
#2(mikespook):
既然不用exe压缩工具,就手工编辑 PE 结构吧。那样可以把 exe 文件缩得很小,很小~~
#3(xingzhe2001):
需要你在编程序的时候注意,不要滥用模板,减少全局变量。
#4(whg01):
尽量复用代码,能用系统api做的,就不要自己写。
比较大的初始化数据,考虑从文件中读取,而不是编译在代码中。
#5(myhder):
在不改变原有代码的基础上缩减exe大小的话
可以这样设置
vc6.0中
工程 ->设置-》c/c++ ->"分类"中 选择 Code Generation ,然后在Use run-time library中 选择
Multithreaded DLL
#6(thy38):
优化中选择大小最优,多用函数少用内联、模板、宏,用表格驱动。
#7(oLINo):
内联汇编
#8(blpluto):
尽可能少用模版和内联
多用系统API;
如果还想再好点的话。。就自己写PE吧。。觉得够小
#9(kobemouse):
尽量使用动态链接库,这样可以很大的减少exe大小。否则只能通过编译选项来优化代码尺寸了。
#10(jackyjkchen):
楼上都是顾左右而言他,再不调动代码的情况下,VC可以自己减少50%以上的体积
release
/md /o1 /opt:nowin98 /entry:main /align:16(这个值根据情况,有时太小程序会出错) /merge:.rdata=.text /merge:.data=.text(慎用这两个)
VC6~VC9,用这些选项可将hello world程序控制在600字节左右