I have been trying, unsuccessfully, to compile my c program for using openCV on the linux-based operating system run on Raspberry Pi, Raspbian. The goal is to interface with the RPi camera, incorporating OpenCV. I have searched similar errors but only found mentions of C++ programs with this specific problem. I do not want this in C++, I want to solve the problem using C programming.
I am compiling a file ending in .c with the following command in the linux LXTerminal:
gcc -o testcode testcode.c
I repeatedly get the follow errors:
/tmp/cclhjysk.o: In function
cvDecRefData': testcode.c:(.text+0xe84): undefined reference to
cvFree_' testcode.c:(.text+0xf2c): undefined reference tocvFree_' /tmp/cclhjysk.o: In function
cvGetRow': testcode.c:(.text+0x10c4): undefined reference tocvGetRows' /tmp/cclhjysk.o: In function
cvGetCol': testcode.c:(.text+0x1104): undefined reference tocvGetCols' /tmp/cclhjysk.o: In function
cvReleaseMatND': testcode.c:(.text+0x112c): undefined reference tocvReleaseMat' /tmp/cclhjysk.o: In function
cvSubS': testcode.c:(.text+0x12f8): undefined reference tocvAddS' /tmp/cclhjysk.o: In function
cvCloneSeq': testcode.c:(.text+0x1344): undefined reference tocvSeqSlice' /tmp/cclhjysk.o: In function
cvSetNew': testcode.c:(.text+0x13cc): undefined reference tocvSetAdd' /tmp/cclhjysk.o: In function
cvGetSetElem': testcode.c:(.text+0x149c): undefined reference tocvGetSeqElem' /tmp/cclhjysk.o: In function
cvReadIntByName': testcode.c:(.text+0x1584): undefined reference tocvGetFileNodeByName' /tmp/cclhjysk.o: In function
cvReadRealByName': testcode.c:(.text+0x1670): undefined reference tocvGetFileNodeByName' /tmp/cclhjysk.o: In function
cvReadStringByName': testcode.c:(.text+0x1718): undefined reference tocvGetFileNodeByName' /tmp/cclhjysk.o: In function
cvReadByName': testcode.c:(.text+0x1764): undefined reference tocvGetFileNodeByName' testcode.c:(.text+0x1778): undefined reference to
cvRead' /tmp/cclhjysk.o: In functioncvContourPerimeter': testcode.c:(.text+0x17c0): undefined reference to
cvArcLength' /tmp/cclhjysk.o: In functioncvCalcHist': testcode.c:(.text+0x1800): undefined reference to
cvCalcArrHist' /tmp/cclhjysk.o: In functioncvEllipseBox': testcode.c:(.text+0x1908): undefined reference to
cvEllipse' /tmp/cclhjysk.o: In functioncvFont': testcode.c:(.text+0x1970): undefined reference to
cvInitFont' /tmp/cclhjysk.o: In functionmain': testcode.c:(.text+0x1a0c): undefined reference to
cvCreateCameraCapture' testcode.c:(.text+0x1a20): undefined reference toSetCaptureProperty' testcode.c:(.text+0x1a30): undefined reference to
SetCaptureProperty' testcode.c:(.text+0x1a40): undefined reference toSetCaptureProperty' testcode.c:(.text+0x1a50): undefined reference to
SetCaptureProperty' testcode.c:(.text+0x1a70): undefined reference tocvRetrieveFrame' testcode.c:(.text+0x1a7c): undefined reference to
cvGrabFrame' testcode.c:(.text+0x1a90): undefined reference to `cvGrabFramed' collect2: ld returned 1 exit status
I have searched through my RPi for files with mention of cvFree and have been unable to locate them, so I'm thinking that I might be missing a step in the download or excluding a header.
I have the following header files:
stdlib.h
stdio.h
math.h
opencv/cv.h
opencv/highgui.h
opencv/cvaux.h
Note: All the include statements are preceded with a pound/hashtag and the word "include," in addition to being surrounded by "<>" brackets.
I use the following calls (variable types only included in parameters listed): cvCaptureFromCAM(0) SetCaptureProperty(CvCapture, CV_CAP_PROP_FPS, #) cvGrabFrame(CvCapture* ) cvRetrieveFrame(CvCapture* )
Please let me know if you have any feedback, I appreciate it!