gpt4 book ai didi

c++ - OpenCV ARDrone 编译问题

转载 作者:太空宇宙 更新时间:2023-11-03 23:04:14 25 4
gpt4 key购买 nike

长话短说,我在修改后的 ARDrone Win32 客户端 1.5 版(目前不是最新版)中包含了 OpenCV 2.3.1 版(目前是最新版),并且从那以后一直在努力将两者结合起来。我使用的是 Microsoft Visual Studio 2008(完整版)。

首先,我在 Win32 客户端中使用最多的文件是“video_stage.c”;我正在处理视频操作等,因此使用了 OpenCV。为了在 video_stage.c 中获得 OpenCV 的全部功能,我需要将 video_stage.c 更改为 C++ 文件(如果我错了请纠正我)。

所以我已经完成了必要的代码更改,使 video_stage.c 编译为 C++ 文件。但是,我仍然遇到一个我无法完全理解的错误:

...\include\opencv2\core\mat.hpp(115) : error C3861: '_InterlockedExchangeAdd': identifier not found

此错误多次出现,在第 305、377、381、2064、2092 和 2096 行。

编辑:有人指出在 operations.hhp 中使用了“_InterlockedExchangeAdd”:

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

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

最佳答案

事实证明,ARDrone 包含了它自己的“intrin.h”拷贝,该头文件通常包含 _InterlockedExchangeAdd。出于某种我不知道的原因,Microsoft Visual C++ 将这个新拷贝优先于原始版本,并且出于某种我也不知道的原因,ARDrone 的版本不包含 _InterlockedExchangeAdd 或任何类似的函数。

关于c++ - OpenCV ARDrone 编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7182310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com