VC2011/VC2012编译OpenCV时, error C2977 "std::tuple" too many template arguments等问题的解决方法

本文介绍了在使用VC2011/VC2012编译OpenCV时遇到的错误,如"error C2977 'std::tuple' too many template arguments"的解决方法,包括修改系统文件的限制和使用lambda函数替换特定函数。同时,还提供了解决greater函数和bind2nd、plus函数编译问题的方案,通过引入特定头文件和使用模板来避免错误。
摘要由CSDN通过智能技术生成

1. 编译时,error C2977 "std::tuple" too many template arguments问题的解决办法

网文http://www.cnblogs.com/fresky/articles/2455058.html中的方案如下:

打开 c:\program files (x86)\Microsoft Visual Studio 11.0\VC\include\xstddef,把 _VARIADIC_MAX定义成10。

这个方案一方面需要Administrator,其实是需要System权限才能修改Windows 8中的System文件,另一方面,会对所有的C/C++代码造成影响


其实,更简单的方法是打开“解决方案资源管理器”,右键打开项目“属性”,在C/C++ --> “预处理器”--> “预处理定义”中增加以下行即可:


_VARIADIC_MAX=10


编译OpenCV, 通过...


2. OpenCV编译时greater函数报错的解决办法:由于只有一处用到greater函数,咱直接用lambda函数替换


//sort(edges.begin(), edges.end(), vector<GraphEdge>::greater<GraphEdge>());
sort(edges.begin(), edges.end(), 
[](const GraphEdge& _Left, GraphEdge & _Right) -> bool 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值