Opencv2.1.0+VS2008 配置
2013-07-09 16:40
225 查看
上午工作:
今天接到导师的课题,需要配置一个OpenCv+VS的环境。
本来配置好了VS2008+opencv2.3.1,后来衔接一个项目对不上,出现的错误提示调用不了opencv2.1.0库函数和链接库。
于是下载配置好了 VS2008+opencv2.1.0,初步实现了一些功能。
下午工作:
下午接手另一个项目,可是也是出错误了,
1>------ 已启动生成: 项目: 目标跟踪, 配置: Debug Win32 ------
1>正在编译...
1>目标跟踪.cpp
1>c:\opencv\build\include\opencv2\flann\logger.h(66) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 参见“fopen”的声明
1>c:\opencv\build\include\opencv2\flann\flann.hpp(233) : warning C4996: 'cv::flann::Index_<T>': 被声明为已否决
1> c:\opencv\build\include\opencv2\flann\flann.hpp(278): 参见对正在编译的类模板实例化“cv::flann::Index_<T>”的引用
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(47) : error C2011: “vc_attributes::YesNoMaybe”: “enum”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(47) : 参见“vc_attributes::YesNoMaybe”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(57) : error C2011: “vc_attributes::AccessType”: “enum”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(57) : 参见“vc_attributes::AccessType”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : error C2011: “vc_attributes::Pre”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 参见“vc_attributes::Pre”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(68) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(102) : error C2011: “vc_attributes::Post”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(102) : 参见“vc_attributes::Post”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(99) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(133) : error C2011: “vc_attributes::FormatString”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(133) : 参见“vc_attributes::FormatString”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(145) : error C2011: “vc_attributes::InvalidCheck”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(145) : 参见“vc_attributes::InvalidCheck”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(142) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(155) : error C2011: “vc_attributes::Success”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(155) : 参见“vc_attributes::Success”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(166) : error C2011: “vc_attributes::PreBound”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(166) : 参见“vc_attributes::PreBound”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(163) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(176) : error C2011: “vc_attributes::PostBound”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(176) : 参见“vc_attributes::PostBound”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(173) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(186) : error C2011: “vc_attributes::PreRange”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(186) : 参见“vc_attributes::PreRange”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(183) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(198) : error C2011: “vc_attributes::PostRange”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(198) : 参见“vc_attributes::PostRange”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(195) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2370: “SA_Yes”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : 参见“SA_Yes”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2370: “SA_No”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : 参见“SA_No”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2370: “SA_Maybe”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : 参见“SA_Maybe”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2370: “SA_NoAccess”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : 参见“SA_NoAccess”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2370: “SA_Read”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : 参见“SA_Read”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2370: “SA_Write”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : 参见“SA_Write”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2370: “SA_ReadWrite”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : 参见“SA_ReadWrite”的声明
1>生成日志保存在“file://d:\My Documents\Desktop\目标跟踪\目标跟踪\Debug\BuildLog.htm”
1>目标跟踪- 25 个错误,个警告
========== 生成: 成功0 个,失败1 个,最新0 个,跳过0 个==========
碰到这问题,是由于头文件重复包含了所定义的变量或者常量,这点是无容置疑的,那究竟怎么才不会重复包含?我这里的是最简单最直接的方法,只要你在你出现重定义错误的头文件加上这一句:#pragma once 就可以解决了,这一句的意思是告诉编译器,编译过程中以下内容只加载一次,即使出现复杂多嵌套的头文件包含页不会出现重定义,这也是一种良好的变成习惯。如果你没有把变量或者常量定义到头文件(h)而出现以上错误,那根源其实也是一样,只要你把编译错误的全局或者共享变量,常量放到同一个自定义的头文件里,
在// stdafx.cpp : 只包括标准包含文件的源文件
// 目标跟踪.pch 将作为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"
在此文件中引用加上:#pragma once 就可以解决,如下:
编译成功
今天接到导师的课题,需要配置一个OpenCv+VS的环境。
本来配置好了VS2008+opencv2.3.1,后来衔接一个项目对不上,出现的错误提示调用不了opencv2.1.0库函数和链接库。
于是下载配置好了 VS2008+opencv2.1.0,初步实现了一些功能。
下午工作:
下午接手另一个项目,可是也是出错误了,
1>------ 已启动生成: 项目: 目标跟踪, 配置: Debug Win32 ------
1>正在编译...
1>目标跟踪.cpp
1>c:\opencv\build\include\opencv2\flann\logger.h(66) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 参见“fopen”的声明
1>c:\opencv\build\include\opencv2\flann\flann.hpp(233) : warning C4996: 'cv::flann::Index_<T>': 被声明为已否决
1> c:\opencv\build\include\opencv2\flann\flann.hpp(278): 参见对正在编译的类模板实例化“cv::flann::Index_<T>”的引用
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(47) : error C2011: “vc_attributes::YesNoMaybe”: “enum”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(47) : 参见“vc_attributes::YesNoMaybe”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(57) : error C2011: “vc_attributes::AccessType”: “enum”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(57) : 参见“vc_attributes::AccessType”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : error C2011: “vc_attributes::Pre”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 参见“vc_attributes::Pre”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(68) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(102) : error C2011: “vc_attributes::Post”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(102) : 参见“vc_attributes::Post”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(99) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(133) : error C2011: “vc_attributes::FormatString”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(133) : 参见“vc_attributes::FormatString”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(145) : error C2011: “vc_attributes::InvalidCheck”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(145) : 参见“vc_attributes::InvalidCheck”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(142) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(155) : error C2011: “vc_attributes::Success”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(155) : 参见“vc_attributes::Success”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(166) : error C2011: “vc_attributes::PreBound”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(166) : 参见“vc_attributes::PreBound”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(163) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(176) : error C2011: “vc_attributes::PostBound”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(176) : 参见“vc_attributes::PostBound”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(173) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(186) : error C2011: “vc_attributes::PreRange”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(186) : 参见“vc_attributes::PreRange”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(183) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(198) : error C2011: “vc_attributes::PostRange”: “struct”类型重定义
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(198) : 参见“vc_attributes::PostRange”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(195) : error C3094: “repeatable”: 不允许匿名使用
1> d:\测试\目标跟踪\目标跟踪\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
1> 属性只能应用于: 'class', 'struct'
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : error C2370: “SA_Yes”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : 参见“SA_Yes”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : error C2370: “SA_No”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : 参见“SA_No”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : error C2370: “SA_Maybe”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : 参见“SA_Maybe”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : error C2370: “SA_NoAccess”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : 参见“SA_NoAccess”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : error C2370: “SA_Read”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : 参见“SA_Read”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : error C2370: “SA_Write”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : 参见“SA_Write”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : error C2370: “SA_ReadWrite”: 重定义;不同的存储类
1> d:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : 参见“SA_ReadWrite”的声明
1>生成日志保存在“file://d:\My Documents\Desktop\目标跟踪\目标跟踪\Debug\BuildLog.htm”
1>目标跟踪- 25 个错误,个警告
========== 生成: 成功0 个,失败1 个,最新0 个,跳过0 个==========
碰到这问题,是由于头文件重复包含了所定义的变量或者常量,这点是无容置疑的,那究竟怎么才不会重复包含?我这里的是最简单最直接的方法,只要你在你出现重定义错误的头文件加上这一句:#pragma once 就可以解决了,这一句的意思是告诉编译器,编译过程中以下内容只加载一次,即使出现复杂多嵌套的头文件包含页不会出现重定义,这也是一种良好的变成习惯。如果你没有把变量或者常量定义到头文件(h)而出现以上错误,那根源其实也是一样,只要你把编译错误的全局或者共享变量,常量放到同一个自定义的头文件里,
在// stdafx.cpp : 只包括标准包含文件的源文件
// 目标跟踪.pch 将作为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"
在此文件中引用加上:#pragma once 就可以解决,如下:
编译成功
相关文章推荐
- VS2008下安装配置OpenCV2.4.5过程记录
- 学习opencv(1)--VS2008下安装opencv2.4 配置 显示图像
- Opencv2.3.1在VS2008和VS2010平台上安装配置图解
- WIN7(32)位+OPENCV2.3.1+VS2008配置
- vs2008中配置opencv2.0
- Opencv2.3.1在VS2008平台上安装配置图解
- vs2008 下配置 opencv2.0 的总结,以及 vc6 下配置 opencv1.0 的转帖
- OpenCV2.3 + VS2008配置
- Opencv2.3.1在VS2008和VS2010平台上安装配置图解
- 在VS2008下配置OpenCV1.0的方法(转)
- VS配置OpenCv2.1.0
- 配置OpenCV的Qt开发环境Qt4.8.1+Qt Creator2.1.0+OpenCV2.4.10
- Opencv2.0 lib和dll的编译获取过程 以及 vs2005,vs2008配置过程
- vs2008-opencv2.3.1配置
- 在vs2008中配置OpenCV2.2
- vs2008配置opencv2.4.0
- vs2008 + OpenCV-2.1.0-win32-vs2008安装
- vs2008 + OpenCV-2.1.0-win32-vs2008安装
- [转]vs2008 + OpenCV-2.1.0-win32-vs2008安装
- 在vs2008中配置opencv环境