降低构建大小

时间:2014-01-06 05:14:08

标签: c++ runtime

当我在VS2013中为C ++运行时库使用静态链接时,有什么方法可以降低我的构建大小?

我的原始文件只有15kb,但我无法在其他计算机上运行它而不会丢失.dll消息。我决定使用静态链接,现在大小约为100kb。

我正在使用Windows.h标头和WinAPI函数。

3 个答案:

答案 0 :(得分:1)

由于您的主要目的是控制尺寸,dll是可行的。

就你失踪的dll而言,可以解决它。 如果您使用标准库缺失错误,那么最好在运行应用程序的机器上安装可再发行组件。

Redistributable for VS2013

答案 1 :(得分:1)

如果您只打算显示MessageBox,则无需链接到任何静态库。

#include <windows.h>

void entry(void) {    
    MessageBox(NULL, "Hello, World!", "", MB_OK);
    ExitProcess(0);
}

使用VC ++ 2013编译和链接,使用以下命令行:

  

cl / O1 / GS- hello32.c / link / nodefaultlib / entry:entry / subsystem:windows user32.lib kernel32.lib

至少对我来说(使用VC ++ 2013)会生成2560字节的可执行文件(这仅取决于核心Windows DLL,因此即使是最简单的系统也不需要额外的任何操作)。

答案 2 :(得分:0)

如果您不使用MFC等,您可以

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>  

减少代码的大小