Proyecto Fin de Carrera

Robótica, software y telecomunicaciones.

El problema del CMakeLists.txt

Poco a poco voy entendiendo los mensajes que obtengo tras una compilación fallida.

Básicamente los errores pueden ser de los siguientes tipos:

  • Sintaxis: Estos son los que tenía con frecuencia, pero que poco a poco van desapareciendo, el motivo era tener en la cabeza mucho más fresca la sintaxis de MATLAB que la de C. Ocurre cuando no cierras un paréntesis, no pones un ; o no escribes bien las palabras reservadas.
  • Declaración: Estos errores son los que más rápido desaparecen cuando uno se ha enterado de la Programación Orientada a Objetos. Pero a veces tenemos despistes.
  • Errores de inicialización o proceso: Estos errores son bastante más comunes, al menos para mí. Por poner un ejemplo, a la hora de rellenar una QImage y salirme de los límites que yo mismo he establecido para esa imagen.
  • Errores con los MOC: Aún no tengo muy claro lo que son los MOC (MetaObjectC), pero lo que es cierto, que se tienen que crear en uns etapa concreta durante la compilación, si no es así, obtendrás errores del tipo MOC. En este caso la solución es borrar todos los MOC que se han generado en el intento de compilar, y posteriormente volver a compilar todo de nuevo. No es un error común, pero si te pasa es importante identificarlo, en ver de revisar tu código muchas veces sin encontrar ningún fallo.
  • Errores con el CMakeLists.txt: El CMakeLists.txt es ese archivo que contiene todo lo necesario para que la compilación se a correcta, por lo tanto, a veces, si la compilación no es correcta es porque falta o sobra algo en el CMakeLists.txt.

De momento no termino de entender la estructura del archivo CMakeLists.txt, ni su sintaxis, por lo que al principio me costaba mucho editarlo. El truco está en ser observador, es decir, mirar los CMakeLists.txt de otro componentes similares al tuyo. Lo mejor en estos casos es usar un programa comparador, que te resalta las diferencias entre dos archivos. Yo personalmente uso Meld, que es gráfico, claro e intuitivo, pero tambien podeís usar KDiff3 o el comando “diff” en un terminal.

Anuncios

1 marzo 2011 Posted by | all | , | 3 comentarios

Cambio de rumbo al proyecto

Después de estar un tiempo leyendo tutoriales y libros sobre programar en C++ orientado a objetos, y curioseando sobre OpenCV, decidí centrarme en la única asignatura que me falta para poder acabar la carrera, Circuitos y Sistemas, a pesar de suspender en Febrero y en Junio, he ido mejorando muchísimo en nivel en esta asignatura, de hecho en el último examen saqué un 4’1 debido a errores absurdos que son el fruto de los nervios y el cansancio en el examen, al menos esta vez contesté todos los problemas y sus apartados, además que los errores se arrastran con facilidad a varios apartados de forma que en cuanto tienes un error, la nota baja drásticamente.

Por este motivo he tomado la decisión de estudiarme Circuitos y Sistemas de otra forma, repasándome los formularios y haciendo como mínimo 1 problema al día. Y esta vez haciéndolos a boli, pues en casa yo siembre los he hecho a lapiz y luego estoy acostumbrado a borrar, cuando eso no puedo hacerlo en el examen. Por otra parte, aún guardo un poco de esperanza de que me deje presentarme al examen de Septiembre pese a no tener covocatoria, aunque según sus palabras durante la revisión de mi examen, lo más seguro es que no.

Así comienza una nueva etapa en la que le daré más duro al proyecto fin de carrera, que ahora se convertirá en el objetivo nº 1.

Tras una reunión ayer con Pedro, mi tutor de proyecto, me dijo que íbamos a variar un poco la forma de trabajar. En un principio yo iba a empezar mi programa partiendo de cero, con ayuda de C++ y OpenCV.

Ya en una de las primeras reuniones le comenté a Pedro que me gustaría que ya que el proyecto fin de carrera me llevará un esfuerzo, ese esfuerzo fuese útil, y además de servime a mí para aprender y finalizar mis estudios, fuera de utilidad a otras personas. Ahora eso se va a cumplir gracias a que Pedro ha estado cada vez más implicado en RoboLab, el Laboratorio de Robótica de la UNEX, y por tanto me ha sugerido que mi proyecto fin de carrera  se enmarque en el framework de código abierto para la robótica ROBOCOMP. Además iremos un paso más allá de la Programación Orientada a Objetos, pues programaremos según el paradigma de la Programación Orientada a Componentes.

14 julio 2010 Posted by | all | , , , | Deja un comentario

   

A %d blogueros les gusta esto: