【问题标题】:Cannot compile because of undefined references?由于未定义的引用而无法编译?
【发布时间】:2015-06-07 14:07:44
【问题描述】:

我想运行一个简单的 OpenCV 代码,但不幸的是我收到了 undefined reference 错误。而且我真的不知道该怎么办。这是我试图让它运行的代码

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main(int argc, char** argv) {

    Mat image;

    image = imread(argv[1], 1);
    //...
    return 0;
}

这是 eclipse 的输出:基本上它说:undefined reference to cv::imread(cv::String const&amp;, int)'

完整的错误信息是:

g++ -L/usr/local/lib -o "TestOpenCV"  ./src/TestOpenCV.o   -lopencv_core -lopencv_highgui
./src/TestOpenCV.o: In function `main':
/media/cip/Media/workspace/OpenCV/TestOpenCV/Debug/../src/TestOpenCV.cpp:21: undefined reference to cv::imread(cv::String const&, int) collect2: error: ld returned 1 exit status make: *** [TestOpenCV] Error 1

pkg-config opencv --libs 的列表输出如下所示:

/usr/local/lib/libopencv_calib3d.so 
/usr/local/lib/libopencv_core.so 
/usr/local/lib/libopencv_features2d.so 
/usr/local/lib/libopencv_flann.so 
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgcodecs.so 
/usr/local/lib/libopencv_imgproc.so 
/usr/local/lib/libopencv_ml.so 
/usr/local/lib/libopencv_objdetect.so 
/usr/local/lib/libopencv_photo.so 
/usr/local/lib/libopencv_shape.so 
/usr/local/lib/libopencv_stitching.so 
/usr/local/lib/libopencv_superres.so 
/usr/local/lib/libopencv_ts.a 
/usr/local/lib/libopencv_video.so 
/usr/local/lib/libopencv_videoio.so 
/usr/local/lib/libopencv_videostab.so 
/usr/local/lib/libopencv_viz.so 

【问题讨论】:

    标签: c++ eclipse opencv eclipse-cdt


    【解决方案1】:

    未定义的引用错误是指“无效的库路径”。 确保输入有效的库路径: 他们应该有扩展名“.lib”或“.a” 希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      已经有similar question。尝试添加

      -lopencv_imgcodecs 
      

      链接器标志列表。

      【讨论】:

        猜你喜欢
        • 2021-05-17
        • 1970-01-01
        • 2013-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多