tata 发表于 2018-3-9 01:03

vs属性设置应用:生成最小exe程序

相信初学C++的人,只了解过解决方案属性设置里面有 C++ ->优化,可以进行优化设置,
至于如何设置,不清楚,老师也没讲过
发个帖子,教大家生成一个最小的exe程序


一 写信息框的控制台程序
#include "stdafx.h"
#include<Windows.h>
int main()
{
        //MessageBox(NULL, L"hello", L"hello", 0);
        MessageBox(NULL, L"hello", L"hello", 0);
        return 0;
}



二 debug和release 版本
    先看大小
    debug:

   37K

   release:

   9K,可以啊,小了不少了,
   如果9K你就满足的话,就图样图森破了
三 开始设置属性
1 代码优化属性 (alt+enter)->C/C++->优化,如图设置:

编译后,看下大小,我去,还是9K,继续设置

2 代码生成设置
   先把必须的全部带上,代码生成->运行库:多线程/MT,安全检查->禁用

74K

3 忽略所有库

生成时候报错:
//==========
提示:
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        LNK2001        无法解析的外部符号 _mainCRTStartup        hello        E:\work\vs2010\hello\hello\LINK        1       

//==========
其实exe程序运行前,程序做了许多事情,
1 执行了GetVersion 获取当前运行平台的版本号
2 _heap_init (),初始化堆空间
3 GetCommandlineA(),获取命令行地址
4 _crtGetEnvironmentStringsA(),获取环境变量的地址
5 _setargv(),取出命令行参数
6 _setenvp(),取出环境变量参数
   命令行地址,命令行参数,环境变量参数作为三个参数传递给main()函数,
7 _cinit(),初始化全局数据和浮点寄存器
报错的原因是找不到入口点,接下来定义程序的入口点和合并节:

编译:

直接到了3K
还能不能再小了?
能,清单文件也可以不要啊



编译后看看大小:

2K

似乎不能再小了

发帖记录下,自己的学习过程

另外,有些人刚会用易语言,就觉得易语言无所不能
我只想说"少年,图样图森破,,..."
{:5_124:}


zhixi521 发表于 2019-10-15 20:39

感谢大佬,学习学习

中国小司机 发表于 2020-7-10 22:48

先把必须的全部带上,代码生成->运行库 那里为啥不选 dll
页: [1]
查看完整版本: vs属性设置应用:生成最小exe程序