OpenCV,架构x86_64错误的未定义符号

时间:2015-06-02 22:07:59

标签: c++ macos opencv g++ linker-errors

我正在尝试让OpenCV在我的计算机上工作 - 对于简单的程序我可以让它工作,但对于这个特定的程序,我无法做到。我得到的错误如下:

    Undefined symbols for architecture x86_64:
  "cv::namedWindow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)", referenced from:
      _main in ccuX28GE.o
  "cv::split(cv::Mat const&, std::vector<cv::Mat, std::allocator<cv::Mat> >&)", referenced from:
      computeFocusDPC(std::vector<R_image, std::allocator<R_image> >, int, float, int, int, int, int, cv::Mat*) in ccuX28GE.o
      qDPC_loop(std::vector<cv::Mat, std::allocator<cv::Mat> >, std::vector<cv::Mat, std::allocator<cv::Mat> >, double) in ccuX28GE.o
  "cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)", referenced from:
      _main in ccuX28GE.o
  "cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)", referenced from:
      _main in ccuX28GE.o
ld: symbol(s) not found for architecture x86_64

我正在尝试使用命令行

编译文件

g++-5.1.0 -o qDPC_desktop qDPC.cpp -I. -std=c++11 -ggdb -fopenmp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching

我知道这个错误不在qDPC.cpp的代码中,因为它可以在我朋友的Ubuntu上编译(我在Mac上工作) - 所以我想知道我的OpenCV是否有问题?我在网上在网上看到它可能是一个链接器问题,但是在我的生活中不能解决这个问题。我的OpenCV版本是2.4.11,我朋友能够编译的版本是2.4.9。

感谢所有帮助!

0 个答案:

没有答案