简体   繁体   中英

openCV error : undefined reference to `cvLoadImage' Ubuntu

I have installed the openCV libraries but I am still getting the error
$ g++ -I /usr/include/opencv/ -L -lcxcore -lhighgui hello.cpp -o hello
/tmp/ccjjrbXr.o: In function main': hello.cpp:(.text+0x2d): undefined reference to cvLoadImage'
collect2: ld returned 1 exit status

When I check for the path of the libraries I get
$ pkg-config --libs opencv
-lml -lcvaux -lhighgui -lcv -lcxcore

I have written a very simple program to test it:

enter code here

#include< cv.h>  
#include< highgui.h> /* required to use OpenCV's highgui */
#include< stdio.h>

int main() { 
    IplImage* img = 0;
    printf("Hello\n");
    img = cvLoadImage("lena.jpg", 0 );
}

There is something wrong with my installation but I am really not able to figure it out. Any guidance will be highly appreciated! Thanks


When I run:

$ pkg-config --cflags --libs opencv
-I/usr/local/include/opencv -I/usr/local/include
/usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so 
/usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so 
/usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so 
/usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so 
/usr/local/lib/libopencv_legacy.so /usr/local/lib/libopencv_ml.so 
/usr/local/lib/libopencv_nonfree.so /usr/local/lib/libopencv_objdetect.so 
/usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_stitching.so 
/usr/local/lib/libopencv_ts.so /usr/local/lib/libopencv_video.so 
/usr/local/lib/libopencv_videostab.so  

But when I run:

$ g++ 'pkg-config --cflags --libs opencv' display_image.cpp
g++: error: pkg-config --cflags --libs opencv: No such file or directory

OpenCV seems to be installed but still the problem persists.

You used single quotes ' instead of backquotes/backticks ` . This is the corrected command:

g++ hello.cpp -o hello `pkg-config --cflags --libs opencv` 

It would be a good idea to link to the highgui lib -lhighgui if you are using it

this command:

g++ 'pkg-config --cflags --libs opencv' display_image.cpp

is different than this:

g++ `pkg-config --cflags --libs opencv` display_image.cpp

because of the ` and ' chars...

if you dont want to mess with those chars, you can use

g++ $(pkg-config --cflags --libs opencv) display_image.cpp

which is easier to visualize

try g++ -g -o mypro progname.cpp pkg-config opencv --cflags --libs or

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM