2012-04-10 15 views
6

He instalado las librerías OpenCV pero todavía estoy consiguiendo el error
$ g ++ -I/usr/include/OpenCV/L -lcxcore -lhighgui hello.cpp - O hola
/tmp/ccjjrbXr.o: En función main': hello.cpp:(.text+0x2d): undefined reference to cvLoadImage'
collect2: ld devolvió el código de salida 1
error OPENCV: undefined reference to `cvLoadImage' Ubuntu

Cuando compruebo por el camino de las bibliotecas que recibo
$ pkg-config - libs opencv
-lml -lcv aux -lhighgui -lcv -lcxcore

He escrito un programa muy simple para probarlo:

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); 
} 

Hay algo malo con mi instalación, pero realmente no soy capaz de entenderlo. Cualquier orientación será muy apreciada! Gracias


Cuando corro:

$ 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 

Pero cuando corro:

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

OpenCV parece estar instalado pero aún así el problema persiste.

Respuesta

0

que sería una buena idea de ligar el highgui lib -lhighgui si lo está utilizando

+0

Lo sentimos, en realidad había entrado ligada todas las librerías, pero cometió un error al entrar en ella el foro. Todavía da el mismo error: '** g ++ -I/usr/include/opencv/-L -lhighgui hello.cpp -o hello /tmp/ccw90mKu.o: En la función 'main': hello.cpp :(. text + 0x2d): referencia indefinida a 'cvLoadImage ' collect2: ld devolvió 1 estado de salida' ** – user1111044

+0

@ user1111044 - entonces probablemente no pueda encontrar la lib. ¿No tiene que especificar un directorio si usa "-L"?esto podría estar bloqueando la búsqueda LD_LIBRARY_PATH estándar –

+0

Sí, ese es el problema exacto que estoy enfrentando. No tengo una carpeta para usar junto con la -L. – user1111044

11

Utilizó comillas simples en lugar de 'backquotes/backticks`. Este es el comando corregido:

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

Ese es el derecho para mí. ¡Gracias! – feelfree

-1

tratar g ++ -g -o MyPro progname.cpp pkg-config opencv --cflags --libs o

+0

gracias pritam .... – user2652000

+1

O ... ¿qué? ... – Jimbo

0

este comando:

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

es diferente a esto:

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

debido a los caracteres `y '...

si no quiere meterse con esos caracteres, puede utilizar

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

que es más fácil de visualizar

Cuestiones relacionadas