2

我正在尝试开发一个 YUV 图像查看器。目的是读取 YUV 图像并将图像显示在窗口中。我正在使用 C 开发此应用程序。

在将 YUV 信息转换为 RGB 数据后,为了查看图像,我使用了 OpenCV 中的 cvShowImage 和 cvResize 函数。要在其他系统中使用此应用程序,我需要在其中安装 opencv,因为我使用的是预编译的 dll。我通过根据“如何在可执行文件中嵌入 openCV Dll ”中提供的指南使用静态库重新编译程序来解决此问题,并生成了一个可跨机器移植的新可执行文件。这导致我的应用程序文件大小从 100KB 增长到 2350KB。这种增长是巨大的。我怀疑这是因为几个不必要的函数链接到我的最终可执行文件

为此,我使用了开关 Eliminate Unreferenced Data (/OPT:REF)。但这并没有解决任何问题。

有没有办法解决这个问题?

4

1 回答 1

1

链接器会自动从您的 exe 中删除所有不需要的代码。

但是如果你记得你的程序包含

  • 读取各种图像格式(bmp、jpg、tiff 等)的所有代码,
  • OpenCV 核心的一个很好的部分(矩阵处理)
  • 一些特定于操作系统的窗口和消息处理(显示图像并能够调整大小/单击/等)
  • 您使用但不知道的其他一些实用程序

就是这样......几MB的代码。

编辑

不要忘记在发布模式下构建您的程序。在调试模式下,在标准代码中添加了更多与调试相关的信息。

于 2012-07-20T07:20:46.973 回答