Autor
|
Tema: error al compilar (Leído 5,214 veces)
|
boticheliss
Desconectado
Mensajes: 8
|
Estoy utilizando programa codeblocks para el manejo de la libreria de opencv y el código siguiente me da el error Undefined reference to 'CvInitSystem' entre otros. Tengo todas las librerias bien linkadas y no se a que se debe este error. ¿Podeis decirme a que es debido? La función incializarImgRGB aun no esta implementada.Muchas gracias. El código es el siguiente:
#include <stdio.h>
#include <cv.h> #include <cxcore.h> #include <highgui.h>
#include "comun.h"
#define fGRIS "¡Hola, OpenCV en gris!" #define fRGB "¡Hola, OpenCV en color!"
#define L MAXPIXEL #define AMPLE (int)L #define ALT (int)L
// Declaraciones de prototipos locales int incializarImgGris( IplImage *imgOrg ); int incializarImgRGB( IplImage *imgOrg );
// // Programa principal // int main(int argc, char* argv[]) { IplImage *imgOrgGris;
cvInitSystem( argc, argv ); printf("OpenCV version: %s\n", CV_VERSION); //CV_MAJOR_VERSION, CV_MINOR_VERSION, CV_SUBMINOR_VERSION, CV_VERSION
printf("Creando una imagen y mostrándola en pantalla [Cualquier tecla - Salir].\n");
imgOrgGris = cvCreateImage(cvSize(AMPLE, ALT),IPL_DEPTH_8U, 1); if (!imgOrgGris) { fprintf(stderr, "Problemas al crear la imagen en grises\n"); return( 1 ); }
fprintf(stderr, "Se ha creado una imagen de %dx%d, de %d planos.\n", imgOrgGris->width, imgOrgGris->height, imgOrgGris->nChannels ); incializarImgGris( imgOrgGris ); cvNamedWindow( fGRIS, CV_WINDOW_AUTOSIZE ); cvShowImage( fGRIS, imgOrgGris ); cvMoveWindow( fGRIS, 0, 0 );
// RGB
cvWaitKey(0); // Espera una tecla los milisegundos que haga falta
cvDestroyAllWindows( );
cvReleaseImage( &imgOrgGris );
return 0; }
// // Inicializa una imagen de un sólo plano de color (imagen de grises) // con un gradiente de valores de gris // // Entrada: imgOrg - la imagen de partida. // // Salida: imgOrg - la imagen resultados que se devuelve modificando la original. // int incializarImgGris( IplImage *imgOrg ) { int x, // indice de las columnas y; // indice de las filas CvScalar colorDst;
if ( imgOrg->nChannels != 1) return( 1 ); else {
for ( x = 0; x < imgOrg->width; x++ ) for ( y = 0; y < imgOrg->height; y++ ) { colorDst.val[0] = x;
cvSet2D(imgOrg, y, x, colorDst); } // Fin de " for ( y = 0; y < imgOrg->height; y++ )" }// Fin de if-else ( imgOrg->nChannels != 1)
} // Fin de "int incializarImgGris( IplImage *imgOrg )"
int incializarImgRGB( IplImage *imgOrg ) {
} // Fin de "int incializarImgRGB( IplImage *imgOrg )"*/
|
|
|
En línea
|
|
|
|
RyogiShiki
Desconectado
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
Hola, para sabeer bn como hacer las cosas seria bueno que nos comunicaras sobre que SO estás trabajando. En todo caso si estás en Windows lo más seguro es que te falte agregar alguna flag en la ventana Linker Options, te dejo un link para que verifiques si toda tu configuración está realizada de manera correcta: http://opencv.willowgarage.com/wiki/CodeBlocksEspero sea de Ayuda Saludos
|
|
|
En línea
|
|
|
|
boticheliss
Desconectado
Mensajes: 8
|
Hola perdona si que trabajo con Windows. He desintalado version 2.2 que tenia de openCV y he instalado las versiones 2.0 y 1.1 de la siguiente página: http://sourceforge.net/projects/opencvlibrary/files/opencv-win/He seguido manual del link que me has pasado pero hay algunos pasos que no he podido realizar al no encontrar la ruta ni las librerias que me mencionas. Al añadir en el debug dentro de search directories-->linker no encuentro la ruta C:\OpenCV2.0_VS2008\lib\Debug En el paso Add the libraries(OpenCV2.0) directive. tampoco encuentro esas librerias que menciona. Ya no me aparece el error anterio y si que se compila el programa y se genera el ejecutable pero cuando lo intento ejecutar me da el siguiente error: Error al iniciar la aplicacion porque no se encontro cxcore.dll. la reinstalacion de la aplicacion puede solucionar el problema. No he encontrado la libreria cxcore110.dll pero la liberia cxcore.dll si que esta. ¿A que se debe este error? Muchas gracias. Un saludo
|
|
|
En línea
|
|
|
|
RyogiShiki
Desconectado
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
Ese error se da porque no tienes bn las variables de entorno, osea que las rutas en el path del sistema están mal o no están, para solucionar eso haz lo siguiente: ir a Control PAnel -> System -> Advanced -> VAriables del Sistema -> Editar y añadir el directorio donde estela carpeta bin de opencv por ejemplo añadirias esto: c:\Program Files\OpenCV\bin; . Con la terminación en Punto Y coma, reinicias el sistema, Compilas y nos cuentas como te fue. Saludos
|
|
|
En línea
|
|
|
|
boticheliss
Desconectado
Mensajes: 8
|
Hola buenas.
He puesto el en el path la variable del sistemas tal como me has comentado pero continua apareciendome el mismo error.
La libreria esa la puedo encontrar en algun lado? La habria de poner en linker dentro de codeblocks o registrarla en alguna ruta en Windows.
Muchas gracias.
|
|
|
En línea
|
|
|
|
RyogiShiki
Desconectado
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
Bueno, la librería que estás buscando debería encontrarse dentro de la ruta RELATIVA \OpenCV\Bin, para solucionar el problema puedes hacer doscosas:
1. Copiar la librería de dicha carpeta y ponerla al lado del ejecutable compilado
2. Verifica que en el PATH de Windows la ruta sea correcta, si el error persiste de seguro tienes algo mal en las variables de Entorno, verifica que todas las rutas sean correctas y dirijan a directorios reales, que todas las rutas terminen en punto y coma (;)
Espero se pueda solucionar
Saludos
|
|
« Última modificación: 14 Enero 2011, 17:24 pm por gankutsuo »
|
En línea
|
|
|
|
boticheliss
Desconectado
Mensajes: 8
|
Muchas gracias al copiar las librerias en el directorio donde se genera el ejecutable se soluciona el problema.
Gracias por todo.
Un saludo
|
|
|
En línea
|
|
|
|
RyogiShiki
Desconectado
Mensajes: 745
げんしけん - Hikkikomori FTW!!!
|
bien de nada, me alegra que se haya resuelto!
|
|
|
En línea
|
|
|
|
|
|