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