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

时间:2012-05-13 16:28:11

标签: c++

大家

最近,我正致力于立体视觉。我从midbury网站下载了StereoMatch代码:http://vision.middlebury.edu/stereo/code/

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

错误:

StcAggregate.o:在函数CStereoMatcher::AggrMin()': StcAggregate.cpp:(.text+0x20f): undefined reference to中,void MinFilter(CImageOf&,CImageOf&,int,int)' StcEvaluate.o:函数_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)' collect2:ld返回1退出状态 make: * [StereoMatch]错误1

2 个答案:

答案 0 :(得分:0)

这是来自链接器(和/或运行时环境)的错误,它无法找到您所包含的头文件承诺存在的某些符号(即代码)。为了找到这些符号,您必须告诉链接器链接包含它们的库(或目标文件)。该库可能带有预编译的代码,或者可能是在安装期间创建的。你有没有一个自述文件说明如何使用(即链接和运行)代码?

答案 1 :(得分:0)

我遇到了完全相同的问题并解决了这个问题: 打开Makefile并从

更改第一行

CPPFLAGS = -O2 -Wall

CPPFLAGS = -O -Wall

然后"干净"和" make",它对我有用。所以我猜这是因为param " -O2"做了比预期更多的优化。