opencv2.4.0程序用代码g ++运行`pkg-config --cflags --libs opencv` facedetect.cpp -o opencv

时间:2014-02-18 19:12:00

标签: opencv

我是OpenCV的新手,我已经在Ubuntu上安装了它。当我尝试运行存储在opencv-2.4.0/samples/c中的示例程序facedetect.cpp时,我无法使其工作。

我尝试通过以下命令运行它:

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

但遇到以下错误:

/tmp/ccKQ8N39.o: In function `main':
facedetect.cpp:(.text+0x1b9): undefined reference to `cv::CascadeClassifier::CascadeClassifier()'
facedetect.cpp:(.text+0x1c7): undefined reference to `cv::CascadeClassifier::CascadeClassifier()'
facedetect.cpp:(.text+0x3ac): undefined reference to `cv::CascadeClassifier::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
facedetect.cpp:(.text+0x589): undefined reference to `cv::CascadeClassifier::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
facedetect.cpp:(.text+0x674): undefined reference to `cvCreateCameraCapture'
facedetect.cpp:(.text+0x744): undefined reference to `cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
facedetect.cpp:(.text+0x799): undefined reference to `cvCreateFileCapture'
facedetect.cpp:(.text+0x824): undefined reference to `cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
facedetect.cpp:(.text+0x8b3): undefined reference to `cvNamedWindow'
facedetect.cpp:(.text+0x8f6): undefined reference to `cvQueryFrame'
facedetect.cpp:(.text+0x91c): undefined reference to `cv::Mat::Mat(_IplImage const*, bool)'
facedetect.cpp:(.text+0x97d): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
facedetect.cpp:(.text+0x995): undefined reference to `cv::Mat::copyTo(cv::_OutputArray const&) const'
facedetect.cpp:(.text+0x9af): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
facedetect.cpp:(.text+0x9c7): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
facedetect.cpp:(.text+0x9e7): undefined reference to `cv::flip(cv::_InputArray const&, cv::_OutputArray const&, int)'
facedetect.cpp:(.text+0xa1f): undefined reference to `cv::waitKey(int)'
facedetect.cpp:(.text+0xa3b): undefined reference to `cv::waitKey(int)'
facedetect.cpp:(.text+0xa49): undefined reference to `cvReleaseCapture'
facedetect.cpp:(.text+0xabf): undefined reference to `cv::waitKey(int)'
facedetect.cpp:(.text+0xbfe): undefined reference to `cv::imread(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
facedetect.cpp:(.text+0xc90): undefined reference to `cv::waitKey(int)'
facedetect.cpp:(.text+0xd33): undefined reference to `cvDestroyWindow'
facedetect.cpp:(.text+0xd46): undefined reference to `cv::CascadeClassifier::~CascadeClassifier()'
facedetect.cpp:(.text+0xd54): undefined reference to `cv::CascadeClassifier::~CascadeClassifier()'
facedetect.cpp:(.text+0xeaf): undefined reference to `cv::CascadeClassifier::~CascadeClassifier()'
facedetect.cpp:(.text+0xec1): undefined reference to `cv::CascadeClassifier::~CascadeClassifier()'
/tmp/ccKQ8N39.o: In function `detectAndDraw(cv::Mat&, cv::CascadeClassifier&, cv::CascadeClassifier&, double)':
facedetect.cpp:(.text+0x1278): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
facedetect.cpp:(.text+0x128d): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
facedetect.cpp:(.text+0x12b5): undefined reference to `cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int)'
facedetect.cpp:(.text+0x12e8): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
facedetect.cpp:(.text+0x1300): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
facedetect.cpp:(.text+0x1333): undefined reference to `cv::resize(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, double, double, int)'
facedetect.cpp:(.text+0x134b): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
facedetect.cpp:(.text+0x1363): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
facedetect.cpp:(.text+0x137b): undefined reference to `cv::equalizeHist(cv::_InputArray const&, cv::_OutputArray const&)'
facedetect.cpp:(.text+0x1380): undefined reference to `cvGetTickCount'
facedetect.cpp:(.text+0x140e): undefined reference to `cvGetTickCount'
facedetect.cpp:(.text+0x142b): undefined reference to `cvGetTickFrequency'
facedetect.cpp:(.text+0x160b): undefined reference to `cv::circle(cv::Mat&, cv::Point_<int>, int, cv::Scalar_<double> const&, int, int, int)'
facedetect.cpp:(.text+0x187e): undefined reference to `cv::circle(cv::Mat&, cv::Point_<int>, int, cv::Scalar_<double> const&, int, int, int)'
facedetect.cpp:(.text+0x1959): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
facedetect.cpp:(.text+0x1993): undefined reference to `cv::imshow(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)'
/tmp/ccKQ8N39.o: In function `cv::Mat::~Mat()':
facedetect.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x2b): undefined reference to `cv::fastFree(void*)'
/tmp/ccKQ8N39.o: In function `cv::Mat::operator=(cv::Mat const&)':
facedetect.cpp:(.text._ZN2cv3MataSERKS0_[cv::Mat::operator=(cv::Mat const&)]+0xf2): undefined reference to `cv::Mat::copySize(cv::Mat const&)'
/tmp/ccKQ8N39.o: In function `cv::Mat::create(int, int, int)':
facedetect.cpp:(.text._ZN2cv3Mat6createEiii[cv::Mat::create(int, int, int)]+0x81): undefined reference to `cv::Mat::create(int, int const*, int)'
/tmp/ccKQ8N39.o: In function `cv::Mat::release()':
facedetect.cpp:(.text._ZN2cv3Mat7releaseEv[cv::Mat::release()]+0x3b): undefined reference to `cv::Mat::deallocate()'
/tmp/ccKQ8N39.o: In function `cv::Mat::operator()(cv::Rect_<int> const&) const':
facedetect.cpp:(.text._ZNK2cv3MatclERKNS_5Rect_IiEE[cv::Mat::operator()(cv::Rect_<int> const&) const]+0x1b): undefined reference to `cv::Mat::Mat(cv::Mat const&, cv::Rect_<int> const&)'
collect2: ld returned 1 exit status

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

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