C ++ - 无法编译OpenCV程序

时间:2016-05-23 06:32:28

标签: python c++ opencv

我已经搜索了解决方案,但找不到任何解决方案。这对我来说还是新的,所以请原谅我,如果它是微不足道的。顺便说一下,我的操作系统是Ubuntu 16.04。

我使用pyimagesearch教程安装了使用Python绑定的OpenCV 3。我见过的最完整的OpenCV安装教程之一。因此,在使用Python与OpenCV相当一段时间之后,我需要通过使用OpenCV和C ++来加强我的游戏。 我已经复制并粘贴了从site加载和显示C ++图像的代码。然后,我用这个命令编译了我的程序:

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

起初,我收到了这个错误:

/usr/bin/ld: cannot find -lippicv

找到解决方案后(通过从-lippicv删除opencv.pc),我得到了这个输出:

/tmp/ccriaGtQ.o: In function `main':
test.cpp:(.text+0x9d): undefined reference to `cv::imread(cv::String    const&, int)'
test.cpp:(.text+0x128): undefined reference to `cv::namedWindow(cv::String const&, int)'
test.cpp:(.text+0x17d): undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
test.cpp:(.text+0x1a5): undefined reference to `cv::waitKey(int)'
/tmp/ccriaGtQ.o: In function `cv::String::String(char const*)':
test.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x4d): undefined reference to `cv::String::allocate(unsigned long)'
/tmp/ccriaGtQ.o: In function `cv::String::~String()':
test.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14): undefined  reference to `cv::String::deallocate()'
/tmp/ccriaGtQ.o: In function `cv::Mat::~Mat()':
test.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39): undefined  reference to `cv::fastFree(void*)'
/tmp/ccriaGtQ.o: In function `cv::Mat::operator=(cv::Mat const&)':
test.cpp:(.text._ZN2cv3MataSERKS0_[_ZN2cv3MataSERKS0_]+0x115): undefined reference to `cv::Mat::copySize(cv::Mat const&)'
/tmp/ccriaGtQ.o: In function `cv::Mat::release()':
test.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4b):    undefined reference to `cv::Mat::deallocate()'
collect2: error: ld returned 1 exit status

这让我发疯了。我仍然是这类事的初学者。所以,任何帮助都将非常感激。

感谢。

1 个答案:

答案 0 :(得分:2)

@ ManthanTilva的评论是正确答案:

  

尝试g ++ test.cpp -o opencv pkg-config --cflags --libs opencv