如何链接包含'pyrUp'的opencv库?

时间:2013-07-24 08:58:01

标签: opencv linker g++

过去几天,我一直在使用以下命令成功编译和链接opencv代码:

g++ motion.cpp -o motion `pkg-config --cflags --libs opencv`

但我最近添加了对pyrUp()功能的调用:

pyrUp( in, out, Size( 640,480 ) );

现在,当我编译时,我得到以下链接器错误:

motion.cpp:(.text+0x1385): undefined reference to `cv::pyrUp(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int> const&, int)'
collect2: ld returned 1 exit status

我错过了什么?我应该使用替代功能吗?我以为我已经在所有opencv库中链接了。

2 个答案:

答案 0 :(得分:0)

据我了解,pkg-config(REF)从这里加载一个配置文件/usr/local/lib/pkgconfig/opencv.pc,其中包含许多设置。

您可能必须将包含pyrup的特定lib添加到此行的末尾

Libs: -L${libdir} -lopencv_core -lopencv_imgproc -lopencv_highgui
-lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

opencv.pc文件也可能位于上面列出的文件夹中。

也可能是您使用的openCV版本没有预编译库。在这种情况下,您必须将此函数的.cpp文件的源添加为参数。我实际上并不确定如何使用ID而不是命令行。

答案 1 :(得分:0)

  

我错过了什么?

您将库放在链接行的开头,即wrong。将它们移到最后。