【发布时间】:2011-12-27 12:28:58
【问题描述】:
我正在尝试在我的 C++ 项目中使用 Rob Hess's SIFT library。我已经查看了其他 SIFT 实现(的代码),但是这个似乎最像 Lowe 的原始论文那样分阶段,并且还使用了我熟悉的 OpenCV,所以我选择了这个。
不幸的是,自从我尝试在 C++ 中使用它之后,我就遇到了麻烦。该库最初是用 C 语言和 OpenCV 编写的。
我尝试在使用 extern 包围和不包围 C 库 include-s 的情况下编译我的代码,但都不起作用。我想我已经诊断出这两种情况的问题,但我不知道如何解决它们,我非常感谢任何帮助。
问题(或者至少是我认为的问题):
withouth
extern: 因为 C++ 名称修改而无法工作(我已经检查过了,当然所有的函数名称都被修饰了)-
extern:不起作用,因为 OpenCV 可以检测天气,它是为 C 或 C++ 编译的。任何 SIFT 库函数都没有链接问题,但现在 OpenCV 包含 C++ 头文件,并且由于在主程序中它最终包含在extern块中,我得到(字面意思是数百)这样的错误:/usr/local/include/opencv2/core/mat.hpp:2361: error: template with C linkage
过去几天我一直在努力完成这项工作,因此,如果有人尝试在 C++ 中使用相同的 SIFT 库,或者在使用不同的库时遇到类似问题,我们将不胜感激。
【问题讨论】: