C++ OpenCV ARDrone编译问题

C++ OpenCV ARDrone编译问题,c++,visual-studio-2008,opencv,C++,Visual Studio 2008,Opencv,长话短说,我将OpenCV版本2.3.1(目前是最新版本)包含在修改后的ARDrone Win32客户端版本1.5(目前不是最新版本)中,从那以后,我一直在努力将这两个版本结合起来。我正在使用MicrosoftVisualStudio2008(完整版) 首先,我在Win32客户机中使用最多的文件是“video_stage.c”;我正在从事视频处理等工作,因此有了OpenCV。为了在OpenVo.FieldActh.c中获得OpenCV的全部功能,我需要将VIETooField.C转换成C++文件

长话短说,我将OpenCV版本2.3.1(目前是最新版本)包含在修改后的ARDrone Win32客户端版本1.5(目前不是最新版本)中,从那以后,我一直在努力将这两个版本结合起来。我正在使用MicrosoftVisualStudio2008(完整版)

首先,我在Win32客户机中使用最多的文件是“video_stage.c”;我正在从事视频处理等工作,因此有了OpenCV。为了在OpenVo.FieldActh.c中获得OpenCV的全部功能,我需要将VIETooField.C转换成C++文件(如果我错了,请纠正我)。 <>我已经做了必要的代码更改,使VIETooPix.C编译成C++文件。然而,我仍然遇到一个错误,我无法完全理解:

…\include\opencv2\core\mat.hpp(115):错误C3861:“\u InterlockedExchangeAdd”:找不到标识符

此错误还会在第305、377、381、2064、2092和2096行发生多次

编辑:已经指出,“\u InterlocatedExchangeAdd”用于operations.hhp:

#define CV_XADD(addr,delta) _InterlockedExchangeAdd((long volatile*)(addr), (delta))

CV_XADD在mat.hpp中多次引用,导致错误列表过长。这段代码有什么问题?

事实证明,ARDrone包含了自己的“intrin.h”副本,该头文件通常包含_InterlockedExchangeAdd。由于我不知道的原因,微软Visual C++将这个新的副本优先于原件,并且出于某种原因,我再也不知道,ARDrone的版本不包含“SytReKeExchange”或类似函数。包含_InterlockedExchangeAdd的头文件。由于我不知道的原因,微软Visual C++将这个新的拷贝按原件排序,并且由于某种原因,我再也不知道了。ARDrone的版本不包含_InterlocatedExchangeAdd或任何类似功能。

它用于include\opencv2\core\operations.hpp第77行。它用于include\opencv2\core\operations.hpp第77行。我的错误是,intrin.h的不正确副本不是来自OpenCV。我认为是的,因为在我开始使用OpenCV之前,我没有遇到过它,但看起来它实际上来自ARDrone的源代码。对不起,我错了,intrin.h的不正确副本不是来自OpenCV。我认为是的,因为在我开始使用OpenCV之前,我没有遇到过它,但看起来它实际上来自ARDrone的源代码。很抱歉