我是Opencv的初学者。最近我遇到了关于cvSmooth的问题。当我尝试使用Xcode编译它时,编译器给了我一个错误说, 未定义的符号: “_cvSmooth”,引自: _main在main.o中 ld:找不到符号 collect2:ld返回1退出状态
有谁知道导致这个问题的原因是什么?谢谢!
答案 0 :(得分:2)
OpenCV编译了许多库。如果你像我一样开始使用OpenCV教程(我正在使用O'Reilly的书),你添加了libopencv_core.dylib
和libopencv_highgui.dylib
,直到使用cvSmooth
函数。
链接器错误(未定义的符号)是“您没有链接到所有必需的库,因此我找不到您要求的例程”的代码。使用nm
命令可以很容易地找到它们,有时您可以通过提供您认为可能存在的库来帮助搜索:
joe@macmini:/usr/local/lib [master]
$ nm libopencv_imgproc*|grep cvSmooth
0000000000132a60 T _cvSmooth
0000000000132a60 T _cvSmooth
0000000000132a60 T _cvSmooth
将libopencv_imgproc.dylib
添加到您的Xcode项目中,您应该参加比赛。
PS:_cvSmooth
由于与基础库的软链接而显示3次:
$ ls -l libopencv_img*
-rwxr-xr-x 1 root admin 2063132 Feb 16 17:48 libopencv_imgproc.2.4.8.dylib*
lrwxr-xr-x 1 root admin 29 Feb 16 17:48 libopencv_imgproc.2.4.dylib@ -> libopencv_imgproc.2.4.8.dylib
lrwxr-xr-x 1 root admin 27 Feb 16 17:48 libopencv_imgproc.dylib@ -> libopencv_imgproc.2.4.dylib
答案 1 :(得分:0)
当您未将OpenCV库链接到已编译的程序时,会发生这种情况。尝试在OpenCV Wiki的Xcode项目中使用OpenCV的说明,看看是否有帮助。
答案 2 :(得分:0)
前几天我得到了完全相同的问题。但是,它现在已经修好了。
基本上,你需要检查三件事。 1.您是否正确设置了搜索路径? 在项目“building Settings”标签上,您需要将Header Search Path和Library Search Path设置为header和lib的目录。我使用MacPort安装了opencv 2.4,因此路径为/ opt / local / include&的/ opt /本地/ lib中
您是否手动添加了库? 在建设阶段 - >将二进制文件链接到库标记,您需要将需要使用的opencv dylib添加到此位置。
您是否选择了GCC编译器? Xcode中的默认编译器是Apple LLVM编译器,它使用c ++ 11标准。由于opencv 2.4与此标准不兼容,因此需要将编译器切换到GCC。您可以在Building Setting标记
希望我的经验可以帮助您解决问题;)