#c #opencv
#c #opencv
Вопрос:
Среда: ОС: macOS, OpenCV: 2.4.12
Я только начал изучать OpenCV и записал код из книги, который,
#include <opencv/highgui.h>
int main(int argc, char **argv) {
int iscolor = -1;
IplImage* img = cvLoadImage(argv[1], iscolor);
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
cvShowImage("Example1", img);
cvWaitKey(0);
cvReleaseImage(amp;img);
cvDestroyWindow("Example1");
return 0;
}
Когда я попытался скомпилировать этот код с помощью этой команды — gcc opencv1.c -o opencv1
, он показал ошибку со следующим сообщением.
Undefined symbols for architecture x86_64:
"_cvDestroyWindow", referenced from:
_main in opencv1-78cabd.o
"_cvLoadImage", referenced from:
_main in opencv1-78cabd.o
"_cvNamedWindow", referenced from:
_main in opencv1-78cabd.o
"_cvReleaseImage", referenced from:
_main in opencv1-78cabd.o
"_cvShowImage", referenced from:
_main in opencv1-78cabd.o
"_cvWaitKey", referenced from:
_main in opencv1-78cabd.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Кто-нибудь знает решение?
Ответ №1:
Вам необходимо включить OpenCV
библиотеки при компиляции, pkg-config
может помочь:
gcc `pkg-config --cflags opencv` `pkg-config --libs opencv` opencv1.c -o opencv1
Комментарии:
1. Я просто перекомпилировал и получил другое сообщение.
ld: library not found for -lippicv
.2. Попробуйте добавить опцию компилятора:
-DINSTALL_CREATE_DISTRIB=ON
в самом конце взгляните на github.com/opencv/opencv/issues/5852