我在 Ubuntu 15.10 上使用 Eclipse 和 OpenCV(版本 3)编写 C 程序,但我不明白为什么总是出现错误
undefined reference to symbol 'cvSaveImage'
如果我运行
pkg-config opencv --cflags --libs
我明白了
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib
-lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres
-lopencv_videostab -lopencv_calib3d -lopencv_features2d
-lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video
-lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann
-lopencv_core -lopencv_hal
所以我将库添加到 GCC C Liker 中,如下图所示
如果我不尝试使用函数 cvSaveImage 程序就会运行,因此其他库可以正常工作。我包含了 highgui 库:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <stdbool.h>
#include <time.h>
有什么想法吗?
最佳答案
cvSaveImage
属于opencv_imgcodecs .
您在库 (-l) 中缺少 opencv_imgcodecs
。
关于Eclipse 中的 C 代码返回对符号 cvSaveImage 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34122181/