编译WebCamPlugin from Ogre forum.

将OGRE与OpenCV结合,开发虚拟现实、增强现实应用程序正逐渐流行起来。

Ogre论坛中http://www.ogre3d.org/forums/viewtopic.php?f=5&t=16572&sid=c22bb2276be348c7438a6875d0a8fdb5

此篇帖子给出了一个将Ogre和OpenCV结合,以捕获摄像头数据的插件程序。

该插件使用pTypes库,从链接中下载的工程里已经自带了该库的工程。

所用的开发环境为:WindowsXP+VS2008+OgreSDK1.7.2+OpenCV2.1。

1、编译pTypes库时,木有问题,Debug和Release都很顺利。

2、编译WebcamPlugin时,首先修改链接器->输入->附加依赖项选项中的与OpenCV对应静态库版本(如:cv210.lib cxcore210.lib cvaux210.lib highgui210.lib)。

 可能会出现的编译错误:

命名空间CV::同vc2008的冲突错误

1>  Webcam.cpp 1>c:/program files (x86)/microsoft visual studio 10.0/vc/include/complex(42): error C2039:'_C_double_complex' : is not a member of '`global namespace''

1>c:/program files (x86)/microsoft visual studio 10.0/vc/include/complex(42): error C2146: syntax error : missing ';' before identifier '_Dcomplex_value'

1>c:/program files (x86)/microsoft visual studio 10.0/vc/include/complex(42): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 

Webcam.h头文件中定义的namespace CV{...}与vc2008的complexvalue冲突,

解决方法:删去命名空间CV::。

3、编译WebcamPluginDemo时,

可能出现的编译错误如下:

(1)找不到"pasync.h"头文件;

解决方法:在C/C++->常规->附加包含目录选项中添加../ptypes-1.8.3/include目录。

(2)Opencv内建数据类型与Ogre的内建数据类型冲突:

>c:/opencv2.1/include/opencv/cxtypes.h(178) : error C2872: 'int64' : símbolo ambiguo puede ser 'c:/opencv2.1/include/opencv/cxtypes.h(146) : __int64 int64' o 'c:/ogresdk_vc9_v1-7-2/include/ogre/ogreplatform.h(255) : Ogre::int64'

>c:/opencv2.1/include/opencv/cxtypes.h(179) : error C2872: 'uint64' : símbolo ambiguo puede ser 'c:/opencv2.1/include/opencv/cxtypes.h(147) : unsigned __int64 uint64' o 'c:/ogresdk_vc9_v1-7-2/include/ogre/ogreplatform.h(254) : Ogre::uint64'

被该问题纠结了一天,终于解决了。

恩,究其原因,是在WebcamPluginDemo.h头文件中包含了以下头文件:

#include <Ogre.h>

#include <ExampleApplication.h>

#include <ExampleFrameListener.h>

#include <OgreExternalTextureSourceManager.h>

 

#include "WebcamController.h"

 

注意:在ExampleApplication.h头文件中,使用了命名空间using namespace Ogre,然而该例子程序对Opencv库的使用是在WebcamController.h头文件中包含了cv.h和highgui.h,所以,按照此顺序编译程序时,编译OpenCV库时,就会遇到OpenCV定义的数据类型与Ogre定义的数据类型冲突的问题。

解决方法:修改包含WebcamPluginDemo.h头文件中所包含头文件的顺序:

#include "WebcamController.h"

 

#include <Ogre.h>

#include <ExampleApplication.h>

#include <ExampleFrameListener.h>

#include <OgreExternalTextureSourceManager.h>

 

如此这样,编译就成功了。

(3)链接时会提示OIS:的一些函数无法解析

解决方法:在链接器->输入->附加依赖项选项中添加OIS.lib库。

 

至此,WebcamPlugin和WebcamPluginDemo成功编译。O(∩_∩)O~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值