当我在VS2013中为C ++运行时库使用静态链接时,有什么方法可以降低我的构建大小?
我的原始文件只有15kb,但我无法在其他计算机上运行它而不会丢失.dll消息。我决定使用静态链接,现在大小约为100kb。
我正在使用Windows.h
标头和WinAPI函数。
答案 0 :(得分:1)
由于您的主要目的是控制尺寸,dll
是可行的。
就你失踪的dll而言,可以解决它。 如果您使用标准库缺失错误,那么最好在运行应用程序的机器上安装可再发行组件。
答案 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>
减少代码的大小