为什么同样的程序在别人机子上可以运行,在我的机子上报错呢?error C2011
2013-10-01 17:14
651 查看
我用的是VC+openCV,为什么下面这个程序在别人的机子上可以正常运行,而在我的机子上会报错呢?我觉得是我的visual studio出了问题,但不知道问题在哪?
程序如下:
#include"stdafx.h"
#include"cv.h"
#include"highgui.h"
void main()
{
IplImage* img=cvLoadImage("D:\\001.jpg");
IplImage* img1hdr=cvCreateImageHeader(cvSize(20,30),img->depth,img->nChannels);
IplImage* img2hdr=cvCreateImageHeader(cvSize(20,30),img->depth,img->nChannels);
img1hdr->origin=img->origin;
img2hdr->origin=img->origin;
img1hdr->widthStep=img->widthStep;
img2hdr->widthStep=img->widthStep;
img1hdr->imageData=img->imageData+10*img->widthStep+5*img->nChannels;
img2hdr->imageData=img->imageData+60*img->widthStep+50*img->nChannels;
cvNot(img1hdr,img1hdr);
cvNot(img2hdr,img2hdr);
cvNamedWindow("crystal",0);
cvShowImage("crystal",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImageHeader(&img1hdr);
cvReleaseImageHeader(&img2hdr);
cvDestroyWindow("crystal");
}
报错如下:
------ 已启动生成: 项目: excercise3_6, 配置: Debug Win32 ------
正在编译...
excercise3_6.cpp
d:\opencv\cv\include\cvcompat.h(784) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(47) : error C2011: “vc_attributes::YesNoMaybe”: “enum”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(47) : 参见“vc_attributes::YesNoMaybe”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(57) : error C2011: “vc_attributes::AccessType”: “enum”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(57) : 参见“vc_attributes::AccessType”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(71) : error C2011: “vc_attributes::Pre”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 参见“vc_attributes::Pre”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(68) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(102) : error C2011: “vc_attributes::Post”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(102) : 参见“vc_attributes::Post”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(99) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(133) : error C2011: “vc_attributes::FormatString”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(133) : 参见“vc_attributes::FormatString”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(145) : error C2011: “vc_attributes::InvalidCheck”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(145) : 参见“vc_attributes::InvalidCheck”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(142) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(155) : error C2011: “vc_attributes::Success”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(155) : 参见“vc_attributes::Success”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(166) : error C2011: “vc_attributes::PreBound”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(166) : 参见“vc_attributes::PreBound”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(163) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(176) : error C2011: “vc_attributes::PostBound”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(176) : 参见“vc_attributes::PostBound”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(173) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(186) : error C2011: “vc_attributes::PreRange”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(186) : 参见“vc_attributes::PreRange”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(183) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(198) : error C2011: “vc_attributes::PostRange”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(198) : 参见“vc_attributes::PostRange”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(195) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(235) : error C2370: “SA_Yes”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : 参见“SA_Yes”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(236) : error C2370: “SA_No”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : 参见“SA_No”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(237) : error C2370: “SA_Maybe”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : 参见“SA_Maybe”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(240) : error C2370: “SA_NoAccess”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : 参见“SA_NoAccess”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(241) : error C2370: “SA_Read”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : 参见“SA_Read”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(242) : error C2370: “SA_Write”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : 参见“SA_Write”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(243) : error C2370: “SA_ReadWrite”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : 参见“SA_ReadWrite”的声明
生成日志保存在“file://d:\Visual Studio 2008\Projects\excercise3_6\excercise3_6\Debug\BuildLog.htm”
excercise3_6 - 25 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
解决办法有二:
方法一:
属性->C/C++->预编译头->不使用预编译头。
可能编译器不同会有不同的方法,方正大致就这样了。
方法二:
重新建一个project,然后把这个代码复制进去。
程序如下:
#include"stdafx.h"
#include"cv.h"
#include"highgui.h"
void main()
{
IplImage* img=cvLoadImage("D:\\001.jpg");
IplImage* img1hdr=cvCreateImageHeader(cvSize(20,30),img->depth,img->nChannels);
IplImage* img2hdr=cvCreateImageHeader(cvSize(20,30),img->depth,img->nChannels);
img1hdr->origin=img->origin;
img2hdr->origin=img->origin;
img1hdr->widthStep=img->widthStep;
img2hdr->widthStep=img->widthStep;
img1hdr->imageData=img->imageData+10*img->widthStep+5*img->nChannels;
img2hdr->imageData=img->imageData+60*img->widthStep+50*img->nChannels;
cvNot(img1hdr,img1hdr);
cvNot(img2hdr,img2hdr);
cvNamedWindow("crystal",0);
cvShowImage("crystal",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImageHeader(&img1hdr);
cvReleaseImageHeader(&img2hdr);
cvDestroyWindow("crystal");
}
报错如下:
------ 已启动生成: 项目: excercise3_6, 配置: Debug Win32 ------
正在编译...
excercise3_6.cpp
d:\opencv\cv\include\cvcompat.h(784) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(47) : error C2011: “vc_attributes::YesNoMaybe”: “enum”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(47) : 参见“vc_attributes::YesNoMaybe”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(57) : error C2011: “vc_attributes::AccessType”: “enum”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(57) : 参见“vc_attributes::AccessType”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(71) : error C2011: “vc_attributes::Pre”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 参见“vc_attributes::Pre”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(68) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(102) : error C2011: “vc_attributes::Post”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(102) : 参见“vc_attributes::Post”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(99) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(133) : error C2011: “vc_attributes::FormatString”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(133) : 参见“vc_attributes::FormatString”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(145) : error C2011: “vc_attributes::InvalidCheck”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(145) : 参见“vc_attributes::InvalidCheck”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(142) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(155) : error C2011: “vc_attributes::Success”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(155) : 参见“vc_attributes::Success”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(166) : error C2011: “vc_attributes::PreBound”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(166) : 参见“vc_attributes::PreBound”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(163) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(176) : error C2011: “vc_attributes::PostBound”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(176) : 参见“vc_attributes::PostBound”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(173) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(186) : error C2011: “vc_attributes::PreRange”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(186) : 参见“vc_attributes::PreRange”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(183) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(198) : error C2011: “vc_attributes::PostRange”: “struct”类型重定义
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(198) : 参见“vc_attributes::PostRange”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(195) : error C3094: “repeatable”: 不允许匿名使用
d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(235) : error C2370: “SA_Yes”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : 参见“SA_Yes”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(236) : error C2370: “SA_No”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : 参见“SA_No”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(237) : error C2370: “SA_Maybe”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : 参见“SA_Maybe”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(240) : error C2370: “SA_NoAccess”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : 参见“SA_NoAccess”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(241) : error C2370: “SA_Read”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : 参见“SA_Read”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(242) : error C2370: “SA_Write”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : 参见“SA_Write”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(243) : error C2370: “SA_ReadWrite”: 重定义;不同的存储类
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : 参见“SA_ReadWrite”的声明
生成日志保存在“file://d:\Visual Studio 2008\Projects\excercise3_6\excercise3_6\Debug\BuildLog.htm”
excercise3_6 - 25 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
解决办法有二:
方法一:
属性->C/C++->预编译头->不使用预编译头。
可能编译器不同会有不同的方法,方正大致就这样了。
方法二:
重新建一个project,然后把这个代码复制进去。
相关文章推荐
- VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
- VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
- VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
- 为什么VC中DEBUG版本可以正常运行的程序有时无法在RELEASE版本下正常运行
- vs2010 C++ 静态编译(解决:程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法)
- VS2013 c++/c编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等的解决方法
- 为什么xcode中有些程序可以切换ios6/7模拟器,有的程序不行,为什么xcode有iPhoneSimulator6.1.sdk但是不能运行6的模拟器
- VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
- 为什么VC中DEBUG版本可以正常运行的程序有时无法在RELEASE版本下正常运行
- VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等的解决方法
- vc 加载绝对路径图片的程序怎么能在别人的机子上运行
- VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
- VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
- 为什么VC中DEBUG版本可以正常运行的程序有时无法在RELEASE版本下正常运行(转)
- vs2010 C++ 静态编译(解决:程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法)
- 在xp,win7下程序运行时可以修改它的文件名,不知道为什么这样,估计要看一下内核相关的内容。
- 用C#写的winform程序为什么不能在别人的电脑上运行(转)
- 看到的人过来帮帮忙啊!!!纠结的触摸屏移植问题(为什么别人可以,我不行呢)
- 为什么matlab有的函数文件可以直接运行而有的不行
- 如何使vc2008写的非MFC程序运行在无vc环境的机子上?