VS2012 VC++编译hello world! 生成文件335kb多 如何弄小

lhaotian 2013-02-06 01:29:12
如题













运行后



我想问 ,这么简单的程序 应用程序为什么会有335kb那么大,是我哪里做的不对吗 如何把他做小!

要求是任何电脑 直接运行
...全文
882 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
再见理想~ 2013-06-05
  • 打赏
  • 举报
回复
用UPX压缩
一叶之舟 2013-02-22
  • 打赏
  • 举报
回复
我编译的有8K,在2010下。
bravery36 2013-02-21
  • 打赏
  • 举报
回复
mt\mtd都不可能小,要用就只能是md/mdd,这样微软的库就不会直接包进来了,其他的因素都不是特别重要。在vs2010之后,都可以用md。像还在用vs2005的同学,建议用mt,不然manifest的问题会让人生不如死。
麻浦区保安 2013-02-21
  • 打赏
  • 举报
回复
要文件小就尽量不要连接太多库!!!
bluewanderer 2013-02-08
  • 打赏
  • 举报
回复
subsystem用windows不用标准库自己处理console的话编译出来应该不超过2k... 不过这没什么意义。
Mr_Right 2013-02-08
  • 打赏
  • 举报
回复
谢谢楼上的指点!
healer_kx 2013-02-07
  • 打赏
  • 举报
回复
引用 15 楼 Kaile 的回复:
楼主做什么行业,对几百K斤斤计较?
估计是互联网行业吧,像360,腾讯,都挺在乎安装包的size的。
「已注销」 2013-02-07
  • 打赏
  • 举报
回复
个人建议,希望有用: 1.可考虑使用运行时库更小的其它编译器开发 2.使用VS2012时清理掉用不到的链接库,且其它参数按满足最小需求来配置 3.使用动态库比静态库链接编译出来的程序小,但要目标机器满足运行环境要求 4.如果必须使用VS2012开发,且核查项目设置参数满意后,可以对编译出来的程序进行加壳,一定程序上能有效减小程序大小 附:连接其它程序库时不要链接为debug版本的
healer_kx 2013-02-07
  • 打赏
  • 举报
回复
引用 23 楼 vrace 的回复:
Tiny C Compiler 生成的代码很小...
还不是CRT小的缘故。第二条正途就是自己提供CRT。
vrace 2013-02-07
  • 打赏
  • 举报
回复


Tiny C Compiler 生成的代码很小...
caoh110 2013-02-07
  • 打赏
  • 举报
回复
编译时,将 debug 选项改成release
星星眼 2013-02-07
  • 打赏
  • 举报
回复

#include <iostream>

#pragma comment(linker, "/SUBSYSTEM:Console")
#pragma comment(linker, "/ENTRY:MyMain")

int MyMain()
{
	std::cout << "Hello, world!" << std::endl;
	return 0;
}
10KB
千树之影 2013-02-07
  • 打赏
  • 举报
回复

尝试写了一个helloworld程序,89个字节。
千树之影 2013-02-07
  • 打赏
  • 举报
回复
记得汇编课上写的第一个程序,program.com,大小14字节。
Kaile 2013-02-07
  • 打赏
  • 举报
回复
我看有点象木马行业
ppsharp 2013-02-06
  • 打赏
  • 举报
回复
惜盘如金。。
Kaile 2013-02-06
  • 打赏
  • 举报
回复
楼主做什么行业,对几百K斤斤计较?
  • 打赏
  • 举报
回复
引用 11 楼 CandPointer 的回复:
试了下 VS2012 8.50 KB (8,704 bytes) C/C++ code?12345678#include <iostream>int main(){ char *a; a="Hello World!"; std::cout<<a; return 0;} 参数 /MP /GS- /TP /Qpar- /GL /……
这个是/MD的 还得依赖 MSVCR110.DLL MSVCP110.DLL
  • 打赏
  • 举报
回复
引用 11 楼 CandPointer 的回复:
试了下 VS2012 8.50 KB (8,704 bytes) C/C++ code?12345678#include <iostream>int main(){ char *a; a="Hello World!"; std::cout<<a; return 0;} 参数 /MP /GS- /TP /Qpar- /GL /……
+1 这个其实是工程属性的问题。
healer_kx 2013-02-06
  • 打赏
  • 举报
回复
引用 11 楼 CandPointer 的回复:
试了下 VS2012 8.50 KB (8,704 bytes) C/C++ code?12345678#include <iostream>int main(){ char *a; a="Hello World!"; std::cout<<a; return 0;} 参数 /MP /GS- /TP /Qpar- /GL /……
正道,其他的都是扯淡的。还.com
加载更多回复(11)

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧