`
tansitongba
  • 浏览: 503630 次
文章分类
社区版块
存档分类
最新评论

使用OpenCV官方提供文件配置、静态编译并运行OpenCV-2.3.x/2.4.x实例

 
阅读更多

版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。

博客地址http://blog.csdn.net/shuxiao9058

原始作者:季亚


当我们需要测试程序,或者想将程序发给其他同事或者同学,以让同事或者同学运行以测试程序性能或者逻辑是否恰当时,是不是还要他人也要像你当初开发程序时一样一步一步的配置OpenCV运行环境!?如果不做这些,还会提示像图1所示的系统错误(无法启动程序,因为计算机中丢失“opencv_highgui241d.dll。尝试重新安装该程序以解决此问题”),这是不是太麻烦了,其实我们可以将程序以静态链接的方式编译,如此便少去了配置运行时环境的步骤了。

图1动态编译的程序在未配置OpenCV的机器上运行提示系统错误

静态编译,也就是说编译后的程序可以直接拷贝到其他机器上并能直接运行。而不需附带链接库和配置环境变量。

由于OpenCV自2.3.0版本开始就提供了OpenCV-2.3.x -win-superpack.exe或OpenCV-2.4.x.exe文件,该文件解压后我们会发里面有个名为“build”的文件夹,其中有各个平台的链接库,而且还提供了Windows平台下的静态链接库,本文主要讲述一个例子以说明如何配置使用该静态链接库。

像前面(OpenCV2.3.x/2.4.x在Visual Studio2005/2008和Visual Studio2010配置方法详解)放置OpenCV库文件配置VC++目录选项,并且配置环境变量(这一步可以不配置,但要在VC++目录中将OpenCV的“bin”目录添加到“VC++ 可执行文件”目录选项中),注意这里使用的库目录是“staticlib”而不是“lib,这里不多赘述。

配置完Visual Studio 2008中的VC++目录后便可以编写代码了。

(1)编辑代码

“新建项目”,选择“Visual C++-空项目”,输入项目名“StaticOpenCV”,“添加新项-代码-C++ 文件”,输入文件名“StaticOpenCV.cpp”,编辑代码,这里本人使用的测试代码如下所示:

(2)添加附加依赖项有两种方法,见《OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008和Visual Studio 2010配置方法详解》一文。

OpenCV-2.4.1库文件列表(使用的时候适当选择,这里我要用的是libjasperd.lib、libjpegd.lib、libpngd.lib"、libtiffd.lib、zlibd.lib(注意这几个必须要用的,因为这些是OpenCV所使用的第三方库)和opencv_highgui241d.lib、opencv_core241d.lib库文件。

为方便我们知道到我们到底需要使用哪些库文件,这里我们使用《OpenCV2.3.x/2.4.x在Visual Studio2005/2008和Visual Studio2010配置方法详解》一文中所讲述的第二种方法添加程序依赖库。我们在头文件与主函数之间添加如下代码:

编译程序,会发发现程序不能正常编译(错误如图2所示),这主要与MSVCRT.lib(MSVCR90.dll)有关。

图2编译产生很多错误

经过查询相关资料可知,需要对项目属性进行如下配置:右击项目名称,选择“属性-配置属性-C/C++-代码生成”,这里我们发现“运行库”选项默认值选项为“多线程调试 DLL (/MDd)”,同时这里有四个选项(/MT,/MTd, /MD, /MDd),前两个一组,为静态链接运行时库,运行时不需要运行时库的支持,代码直接插入到程序中去;后两个一组,为动态链接运行时库,运行时需要MSVCR90.dll或MSVCP90.dll支持。

所以,这里我们将“运行库”选项设置为“多线程(/MT)”或“多线程调试(/MTd)”(注意你的编译模式(Debug还是Release)),如图3所示,设置完成全单击确定。

图3将“运行库”选项设置为“多线程调试(/MTd)”

然后我们再次编译程序,发现还有两个错误,如图4所示。

图4编译程序还有两个错误

这是因为我们的程序是win32程序的问题,我们还需要添加vfw32.lib和comctl32.lib这两个依赖库文件,最终代码如下所示:

再次编译,成功了!!!此时,我们可以将编译后的执行程序复制到其他机器(没有配置OpenCV函数库及环境变量)以测试是否OK。


备注:

1.根据需要可能还需要忽略libcmt库;

2.静态编译后的可执行程序比动态编译后的可执行程序大得多;

3.不能静态编译C++版本的OpenCV程序,可能和VS有关;

4.参考链接:http://blog.csdn.net/shuxiao9058/article/details/7525067

分享到:
评论

相关推荐

    opencv-2.4.13.6-vc14.exe和opencv-4.1.0-vc14_vc15.exe

    2.4.13.6-vc14.exe"和"opencv-4.1.0-vc14_vc15.exe"分别代表了OpenCV的不同版本,前者是2.4.13.6版,后者是4.1.0版,它们都是针对Visual Studio 14 (VS2015) 和 Visual Studio 14_1 (VS2017) 的编译版本。...

    libemgucv-windows-x86-2.3.0.1416.rar

    它不仅简化了OpenCV的使用,还提供了良好的性能和广泛的功能,使得在Windows 32位系统上实现复杂的计算机视觉任务成为可能。通过深入学习和实践,开发者可以利用libemgucv创建出高效、准确的人脸识别系统,应用于...

    opencv-4.5.5.zip/opencv-4.5.5.zip

    opencv-4.5.5.zip

    libemgucv-windows-x86-2.3.0.1416.exe

    libemgucv-windows-x86-2.3.0.1416.exe c#下的opencv~~~~~~~~~~~~~~~~~``````

    opencv-2.4.13.6-vc14.zip

    最后,确保在运行时系统路径中包含`opencv-2.4.13.6-vc14/bin`目录,或者将`opencv-2.4.13.6-vc14/bin`下的.dll文件复制到你的可执行文件同一目录下,以避免运行时找不到依赖的动态库。 OpenCV 2.4.13.6版本支持...

    OpenCV-MinGW-Build-OpenCV-3.3.1.zip

    OpenCV使用CMake和MinGW的编译安装及其在Qt配置运行](https://blog.huihut.com/2017/12/03/CompiledOpenCVRunInQt/) ## Using OpenCV in Qt Add OpenCV library file and include path to Qt `.pro` file. * My ...

    如何安装opencv 2.3.x及2.4.x.docx

    本指南将详细介绍如何在Windows环境下安装和配置OpenCV 2.3.x及2.4.x版本。 **一、下载OpenCV** 首先,你需要从官方网站或OpenCV中文网站下载适用于Windows的OpenCV安装包。在撰写本文时,最新版本为2.4.3,你可以...

    opencv-4.7.0-android-sdk.zip

    OpenCV: Open Source Computer Vision Library https://github.com/opencv/opencv Homepage: https://opencv.org Courses: https://opencv.org/courses Docs: https://docs.opencv.org/4.x/ Q&A forum: ...

    OpenCV-2.4.13.6-MinGW32.rar

    OpenCV-2.4.13.6-MinGW32.rarOpenCV-2.4.13.6-MinGW32.rarOpenCV-2.4.13.6-MinGW32.rarOpenCV-2.4.13.6-MinGW32.rarOpenCV-2.4.13.6-MinGW32.rarOpenCV-2.4.13.6-MinGW32.rarOpenCV-2.4.13.6-MinGW32.rar

    opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl

    opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl opencv_python-2.4.13.2-cp27-cp27m-win_amd64.whl

    opencv-2.4.13.2-android-sdk

    总结,OpenCV-2.4.13.2-android-sdk是一个强大的工具,让开发者能够利用Android设备的摄像头和其他硬件资源,实现复杂的计算机视觉功能。通过学习和使用这个SDK,开发者可以为Android应用增添更多创新和实用的功能。

    opencv4.2.0+opencv-contrib4.2.0-x86-vc15编译库(原创)

    at: F:/opencv-4.2.0/build/3rdparty/ippicv/ippicv_win/icv Intel IPP IW: sources (2019.0.0) at: F:/opencv-4.2.0/build/3rdparty/ippicv/ippicv_win/iw Lapack: NO Eigen: NO Custom HAL: NO ...

    opencv-2.4.13.3-vc14.zip

    在压缩包内,"opencv-2.4.13.3-vc14.exe"是可执行文件,用户可以直接运行进行安装,无需复杂的配置步骤,这大大简化了OpenCV的部署过程。通常,这个安装程序会包括动态链接库(DLLs)、头文件(headers)、预编译库...

    opencv4.9.0+contrib-3rdparty ffmpeg、ippicv boostdesc、vgg-gener下载

    win10 opencv4.9.0 + contrib 编译安装 ffmpeg ippicv boostdesc vgg_generated 下载失败及 setlocal 错误解决(附文件下载) 1.opencv4.9.0_3rd.zip 解压到 opencv-4.9.0/build/3rdparty ffmpeg/ ffmpeg_version....

    opencv_python-2.4.13.2-cp27-cp27m-win32.whl

    opencv_python-2.4.13.2-cp27-cp27m-win32.whl opencv_python-2.4.13.2-cp27-cp27m-win32.whl

    opencv-2.4.13.6-vc14.exe

    在VS2015中使用OpenCV 2.4.13.6,首先需要安装提供的“opencv-2.4.13.6-vc14.exe”文件。安装过程中,系统会自动设置所需的库路径、头文件路径以及库链接,以便于在C++项目中引用OpenCV的功能。安装完成后,开发者...

    opencv_python-4.5.3.56-cp37-cp37m-linux_armv7l.whl.zip

    本文将详细探讨如何在树莓派这样的32位ARMv7l架构设备上配置OpenCV 4.5.3环境,以及如何处理相关文件"opencv_python-4.5.3.56-cp37-cp37m-linux_armv7l.whl.zip"。 首先,`opencv_python-4.5.3.56-cp37-cp37m-linux...

    opencv-4.5.4-cache.zip

    这个是windows上源码编译opencv4.5.4+opencv-contrib4.5.4时候cmake时候缓存文件,只需要将压缩文件夹解压到opencv源码目录下面即可,cmake-gui上configure时候就不会报错,注意解压后文件夹名字是.cache,文件夹名字...

    linux下opencv2.4 静态库编译 lib .a

    1. **下载源代码**:访问OpenCV的官方网站或者Git仓库,下载2.4版本的源代码并解压到指定目录,例如`/usr/local/src/opencv-2.4.x`。 2. **创建构建目录**:在解压后的源代码目录下创建一个构建目录,如`mkdir build...

    opencv4.1-build-X64-debug.zip

    压缩包内的"OpenCVConfig.cmake"和"OpenCVConfig-version.cmake"文件是OpenCV的配置文件,它们包含了OpenCV库的路径信息、模块列表以及编译选项等,用于在CMake构建系统中找到并链接OpenCV库。开发者在项目中通过...

Global site tag (gtag.js) - Google Analytics