我想在我的C++项目中使用Rob Hess's SIFT library。我已经查看了其他SIFT实现的代码,但是这个代码看起来像最初的Lowe的论文中最相似的,并且也使用了我熟悉的OpenCV,所以我选择了这个。用C++连接Rob Hess的SIFT库(用C语言,使用OpenCV)
不幸的是,自从我尝试在C++中使用它之后,我遇到了麻烦。该库最初是用OpenCV用C编写的。
我已经尝试编译我的代码,无论是否包含C库include -s都与extern
,但都不起作用。我想我已经诊断出这两种情况下的问题,但我不知道如何解决这些问题,我非常感谢任何帮助。
问题(或者至少,我认为问题是):
withouth的
extern
:不,因为C的工作++名称重整(我检查了,当然,所有的功能名称被装饰)与
extern
:不起作用,因为OpenCV可以检测它为C或C++编译的天气。有任何的SIFT库函数没有联系的问题,但现在OpenCV中包括C++头,并且因为在主程序它最终包含在extern
块,我得到(字面hundereds)像这样的错误:/usr/local/include/opencv2/core/mat.hpp:2361: error: template with C linkage
我一直在努力使这项工作的最后几天,所以如果有人试图用C++相同SIFT库工作或者已经经历过类似的问题,不同的图书馆,帮助将是最赞赏。
看起来我不能接受我自己的答案2天以上,但这解决了问题,我会尽快接受我的答案。希望这可以帮助别人:) – penelope 2011-12-27 18:35:08