gpt4 book ai didi

c++ - Windows 上 OpenCV 应用程序的紧凑构建

转载 作者:行者123 更新时间:2023-12-02 10:32:59 29 4
gpt4 key购买 nike

我正在阅读 this关于如何使用 OpenCV 为应用程序创建紧凑构建的文章。

但是,本文仅包含 GCC 相关的优化。我在 Visual Studio 中寻找等效选项,但只能找到最小化大小 (/Os) 和选项/LTCG 的选项。

我正在使用从源代码构建的 OpenCV 静态库构建一个非常简单的 OpenCV 控制台应用程序(代码如下)。问题是可执行文件的大小太大(调试版本为 37 MB,发布版本为 19 MB)。我想将该大小减小到几 MB,并且我正在寻找方法来做到这一点 - 我在研究这个问题时发现了那篇文章。

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>

int main()
{
cv::Mat m = cv::imread("sample.jpg");
cv::imwrite("output.jpg", m);
std::cout << "Hello World!\n" << m.rows << " " << m.cols;
return 0;
}

以防万一有人想知道,我包括以下库(以下是 Release模式):
opencv_core430.lib
opencv_imgproc430.lib
opencv_imgcodecs430.lib
libjpeg-turbo.lib
libpng.lib
libtiff.lib
libwebp.lib
ippiw.lib
zlib.lib
IlmImf.lib
libjasper.lib
ittnotify.lib
ippicvmt.lib

如果有人对 Visual Studio 中的等效选项有任何想法,那将有很大帮助。

此外,是否有人成功地使用 Visual Studio 上的静态 OpenCV 库减小了可执行文件的大小?

最佳答案

您可以根据您的模块要求进行构建,详情请参阅 blog .
最简单的构建方法是使用 OpenCV cmake 示例:

cmake
-D WITH_CUDA=OFF \
-D WITH_MATLAB=OFF \
-D BUILD_ANDROID_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_SHARED_LIBS=OFF \
-D BUILD_opencv_objdetect=OFF \
-D BUILD_opencv_video=OFF \
-D BUILD_opencv_videoio=OFF \
-D BUILD_opencv_features2d=OFF \
-D BUILD_opencv_flann=OFF \
-D BUILD_opencv_ml=OFF \
-D BUILD_opencv_photo=OFF \
-D BUILD_opencv_python=OFF \
-D BUILD_opencv_shape=OFF \
-D BUILD_opencv_stitching=OFF \
-D BUILD_opencv_superres=OFF \
-D BUILD_opencv_ts=OFF \
-D BUILD_opencv_videostab=OFF \
-D BUILD_opencv_highgui=ON \
-D BUILD_opencv_imgproc=ON \
..
对于静态链接,您可以通过取消归档 .a 来选择模块。至 .o并将它们捆绑在一个 .a 中.
注意:请确保不要破坏依赖项。
例子:
取消归档 .a使用 ar -x libopencv_imgproc.a并再次存档 ar -rc libopencv_custom.a *.o

关于c++ - Windows 上 OpenCV 应用程序的紧凑构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61585997/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com