1

我需要制作一个具有以下要求的程序:

  • 独立(无需安装)
  • 针对尺寸进行了优化
  • Windows XP 兼容

问题在于,例如添加#include <d3dx9.h>和使用单个函数会使可执行文件大小增加 370kb。

有什么方法/工具,所以如果我只使用库的几个函数,它不会完全链接到可执行文件中?

我尝试了以下但没有成功

  • 发布模式
  • 整个程序优化
  • 最小化尺寸 (/O1)
  • 偏爱小代码(/Os)
  • /选择:参考
  • /选择:ICF
  • 使用链接时间码生成 (/LTCG)

这是测试代码(我使用的是 2004 年 10 月的 d3dx 版本,它允许在此处找到静态链接https://github.com/kavika13/jumpmanzero-thirdparty

#pragma comment (lib, "d3dx9.lib")
#include <d3dx9.h>
int main() {
    D3DXCreateSphere(0, 0, 0, 0, 0, 0);
    return 0;
}

注意:应该注意的是,使用同一个库的更多功能会增加相同的 ~370Kb。

4

1 回答 1

0

我打算建议 /OPT:REF 但后来看到你已经尝试过了。

如果一切都失败了,您可以尝试“可执行打包程序”选项之一,例如 ASPack (aspack.com) 或 UPX (upx.sourceforge.net)。

他们会压缩你的可执行文件并且不会引入额外的依赖。

于 2015-01-16T02:29:41.217 回答