• 解决VS+opencv中Debug版本与Release版本lib切换的问题


    Author: Maddock

    Date: 2015-03-26 09:34:48

    问题来源:http://bbs.csdn.net/topics/390733725

    PS: 按照上述方法做的时候,在debug和release界面的附加依赖项里其中一个编辑完,另一个为什么也出现了和其一样的附加依赖项?怎么实现debug和release中的附加依赖项不一样?? 哪位大侠知道解决方法,求告知!!!!!

    在VS下面,opencv的debug和release版本需要不同的lib版本,在debug版本和release版本切换比较麻烦

    参考方案1:
    参考来源:http://blog.csdn.net/xiaohuh421/article/details/7476485
    #ifdef _DEBUG
    #pragma comment(lib,"..\debug\LedCtrlBoard.lib")
    #else
    #pragma comment(lib,"..\release\LedCtrlBoard.lib")
    #endif

    每次编写代码在前面加入下面的代码,可以不用配置编辑附加依赖项,这里使用的是opencv2.4.10版本。


    #ifdef _DEBUG
    #pragma comment(lib, "opencv_calib3d2410d.lib")
    #pragma comment(lib, "opencv_contrib2410d.lib")
    #pragma comment(lib, "opencv_core2410d.lib")
    #pragma comment(lib, "opencv_features2d2410d.lib")
    #pragma comment(lib, "opencv_flann2410d.lib")
    #pragma comment(lib, "opencv_gpu2410d.lib")
    #pragma comment(lib, "opencv_highgui2410d.lib")
    #pragma comment(lib, "opencv_imgproc2410d.lib")
    #pragma comment(lib, "opencv_legacy2410d.lib")
    #pragma comment(lib, "opencv_ml2410d.lib")
    #pragma comment(lib, "opencv_nonfree2410d.lib")
    #pragma comment(lib, "opencv_objdetect2410d.lib")
    #pragma comment(lib, "opencv_photo2410d.lib")
    #pragma comment(lib, "opencv_stitching2410d.lib")
    #pragma comment(lib, "opencv_ts2410d.lib")
    #pragma comment(lib, "opencv_video2410d.lib")
    #pragma comment(lib, "opencv_videostab2410d.lib")
    #else
    #pragma comment(lib, "opencv_calib3d2410.lib")
    #pragma comment(lib, "opencv_contrib2410.lib")
    #pragma comment(lib, "opencv_core2410.lib")
    #pragma comment(lib, "opencv_features2d2410.lib")
    #pragma comment(lib, "opencv_flann2410.lib")
    #pragma comment(lib, "opencv_gpu2410.lib")
    #pragma comment(lib, "opencv_highgui2410.lib")
    #pragma comment(lib, "opencv_imgproc2410.lib")
    #pragma comment(lib, "opencv_legacy2410.lib")
    #pragma comment(lib, "opencv_ml2410.lib")
    #pragma comment(lib, "opencv_nonfree2410.lib")
    #pragma comment(lib, "opencv_objdetect2410.lib")
    #pragma comment(lib, "opencv_photo2410.lib")
    #pragma comment(lib, "opencv_stitching2410.lib")
    #pragma comment(lib, "opencv_ts2410.lib")
    #pragma comment(lib, "opencv_video2410.lib")
    #pragma comment(lib, "opencv_videostab2410.lib")
    #endif

    参考方案2:

    如果觉得每次添加比较麻烦,可以采用如下一劳永逸的方案:

    新建一个opencv_lib.h文件,编辑内容:

    #ifndef _OPENCV_LIB_
    #define _OPENCV_LIB_

    #ifdef _DEBUG
    #pragma comment(lib, "opencv_calib3d2410d.lib")
    #pragma comment(lib, "opencv_contrib2410d.lib")
    #pragma comment(lib, "opencv_core2410d.lib")
    #pragma comment(lib, "opencv_features2d2410d.lib")
    #pragma comment(lib, "opencv_flann2410d.lib")
    #pragma comment(lib, "opencv_gpu2410d.lib")
    #pragma comment(lib, "opencv_highgui2410d.lib")
    #pragma comment(lib, "opencv_imgproc2410d.lib")
    #pragma comment(lib, "opencv_legacy2410d.lib")
    #pragma comment(lib, "opencv_ml2410d.lib")
    #pragma comment(lib, "opencv_nonfree2410d.lib")
    #pragma comment(lib, "opencv_objdetect2410d.lib")
    #pragma comment(lib, "opencv_photo2410d.lib")
    #pragma comment(lib, "opencv_stitching2410d.lib")
    #pragma comment(lib, "opencv_ts2410d.lib")
    #pragma comment(lib, "opencv_video2410d.lib")
    #pragma comment(lib, "opencv_videostab2410d.lib")
    #else
    #pragma comment(lib, "opencv_calib3d2410.lib")
    #pragma comment(lib, "opencv_contrib2410.lib")
    #pragma comment(lib, "opencv_core2410.lib")
    #pragma comment(lib, "opencv_features2d2410.lib")
    #pragma comment(lib, "opencv_flann2410.lib")
    #pragma comment(lib, "opencv_gpu2410.lib")
    #pragma comment(lib, "opencv_highgui2410.lib")
    #pragma comment(lib, "opencv_imgproc2410.lib")
    #pragma comment(lib, "opencv_legacy2410.lib")
    #pragma comment(lib, "opencv_ml2410.lib")
    #pragma comment(lib, "opencv_nonfree2410.lib")
    #pragma comment(lib, "opencv_objdetect2410.lib")
    #pragma comment(lib, "opencv_photo2410.lib")
    #pragma comment(lib, "opencv_stitching2410.lib")
    #pragma comment(lib, "opencv_ts2410.lib")
    #pragma comment(lib, "opencv_video2410.lib")
    #pragma comment(lib, "opencv_videostab2410.lib")
    #endif

    #endif

    将该文件放入opencv的安装目录:

    C:Adisksoftwareopencvopencv2410opencvuildincludeopencv2opencv_lib.h

    也就是和 #include <opencv2/opencv.hpp>在同一个目录

    之后只需要包含头文件

    #include <opencv2/opencv_lib.h>

    就可以在Debug和Release版本之间任意切换

  • 相关阅读:
    WPF中鼠标左键单击Button弹出ContextMenu,让其右键ContextMenu失效
    如何实现在浏览器中打开IM聊天窗口? 转载
    WPF程序禁止win7窗口自动最大化
    从URL启动程序:也谈谈旺旺的页面启动转载
    混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下...转载
    如何让WrapPanel自动换行转载
    sqlserver2008权限怎么设置?
    如何修改远程桌面连接3389端口
    数据库轮询缓存依赖。
    SQL Server 查询性能优化——索引与SARG(一)(转载)
  • 原文地址:https://www.cnblogs.com/adong7639/p/4362547.html
Copyright © 2020-2023  润新知