在 StereoMatch 代码中未定义对 MinFilter 和 MaxFilter 的引用

undefined reference to MinFilter and MaxFilter in StereoMatch code

本文关键字:MaxFilter 引用 MinFilter StereoMatch 代码 未定义      更新时间:2023-10-16

大家

最近,我正在研究立体视觉。我从米德尔伯里网站下载了StereoMatch代码:http://vision.middlebury.edu/stereo/code/

我使用 Ubuntu 11.10 来运行这段代码。运行此代码后,我收到以下错误。有 3 个"未定义的引用"错误。但是代码已经包含了头文件"MinFilter.h"。我感到困惑。有人可以帮助我吗?我将不胜感激。

错误:

StcAggregate.o: In function CStereoMatcher::AggrMin()': StcAggregate.cpp:(.text+0x20f): undefined reference to void MinFilter(CImageOf&, CImageOf&, int, int)'StcEvaluate.o: in function _ZL14PartialShuffle8CImageOfIhERS0_S1_f.constprop.2': StcEvaluate.cpp:(.text+0x37): undefined reference to void MinFilter(CImageOf&, CImageOf&, int, int)'StcEvaluate.cpp:(.text+0x5b): 未定义引用 'void MaxFilter(CImageOf&, CImageOf&, int, int)'收集2:LD 返回 1 个退出状态制造: * [立体声匹配] 错误 1

这是来自链接器(和/或运行时环境)的错误,该链接器找不到您包含的头文件承诺存在的一些符号(即代码)。为了找到这些符号,必须告诉链接器链接到包含它们的库(或对象文件)。此库可能附带了预编译的代码,也可能是在安装过程中创建的。您是否没有一个自述文件,其中解释了如何使用(即链接和运行)代码?

我遇到了完全相同的问题,并像这样解决了它:打开生成文件并将第一行从

CPPFLAGS = -O2 -Wall

CPPFLAGS = -O -Wall

然后"清洁"和"制作",它对我有用。所以我想这是因为参数"-O2"执行的优化比预期的要多。