Autor Tema: Programacion orientada a objetos pi3  (Leído 3072 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4335
    • Picuino
Re:Programacion orientada a objetos pi3
« Respuesta #30 en: 06 de Marzo de 2017, 11:11:33 »
No se por donde anda eso del Makefile, porque estás cosas apenas las conozco, y aunque cuando trabajo con los STM32 y los Kinetis también anda por ahí lo del Makefile, para mi es algo transparente, no lo he tocado nunca a mano ni se exactamente que contiene. Sospecho que tiene todas las llamadas para la compilación y el enlazado, pero nunca me he preocupado por estudiarlo.
Pues merece la pena para proyectos relativamente grandes, es casi imprescindible.

El Makefile es un fichero con las órdenes para el comando make de Unix/Linux. Se utiliza para automatizar muchos tipos de tareas, pero sobre todo las compilaciones.

En el Makefile pones los ficheros fuentes, los objetos y cómo compilarlos:
Código: [Seleccionar]
foo.o : foo.c defs.h       # targets : prerequisites
        cc -c -g foo.c     #        rules
Para conseguir el fichero foo.o es necesario tener foo.c y defs.h y compilarlos con cc.
Si están foo.c y defs.h y su fecha de última escritura es mayor que la de foo.o, entonces make entiende que tiene que compilar foo.c para producir foo.o
En caso contrario, ya está bien compilado y no hace nada (esto es así para la mayoría de los fuentes)

También puedes escribirlo para todos los fuentes a la vez:
Código: [Seleccionar]
CFLAGS = -flag1 -flag2 ...
COMPILER = gcc
%.o : %.c
    $(COMPILER) -c  $(CFLAGS)   $<   -o $@
$@ = cada uno de los ficheros *.o
$< = cada uno de los ficheros *.c

Ya sólo falta añadir una línea para ejecutar el linkado.

Así, al final no tienes que preocuparte de qué es lo que hay que hacer en cada momento. Tú sólo escribes "make" en la línea de comandos y el programa se encarga de saber qué fuentes hay que compilar y cuáles no y cuándo hay que realizar el enlazado (si alguno de los objetos es más nuevo que el ejecutable final)

Muchos GUIs lo que hacen es escribir el makefile y pasar el control de compilación a make. De esta forma si quieres puedes automatizar la tarea sin pinchar nada con el ratón.
Yo conocí Make con Turbo C hace ya mucho tiempo. Es muy útil sobre todo para proyectos grandes como el tuyo en el que recompilar todo te lleva mucho tiempo. De esta forma sólo recompilas lo necesario y es más rápido.
El Makefile es muy conciso, se tarda poco en escribirlo y en pocas líneas pones todo lo necesario para ejecutar la compilación.

Lo que me pregunto es ¿cómo has conseguido compilar tu proyecto sin make?

Un saludo.

P.D. Por lo que veo en tus pantallazos sí que estás utilizando make.
Lo dicho, guarda bien el Makefile y añade en comentarios la referencia de dónde descargar los compiladores y librerías necesarios.
Con que publiques eso es suficiente para ayudar a que cualquier otro o tú mismo volváis a compilar los fuentes dentro de un tiempo.
« Última modificación: 06 de Marzo de 2017, 11:25:00 por Picuino »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2173
Re:Programacion orientada a objetos pi3
« Respuesta #31 en: 06 de Marzo de 2017, 11:49:47 »
Perdon por el OT, pero agrego unas cosas con make y con los IDEs.

Yo estoy usando STM32, las HAL y el cubeMX. El systemworkbench (eclipse) como IDE.
Para crear un proyecto puedo elegir (respecto de las HAL) agregar los .c/.h que utilizas al proyecto o linkearlos como referencia externa y dejar todos los .c/.h en su directoprio de instalacion. El primero tiene como ventaja de que en tu proyecto tienes copias de los .c/.h y si haces macana en el directorio de instalacion de las HAL o te vas a otra PC que no tiene las HAL el proyecto lo podes compilar igual. La contra es que las HAL pesan muchos megas. Si los linkeas pues tu proyecto pesa nada, pero necesitas que tengas las hal instaladas en un lugar determinado.

Bien, cuando queres compartir un proyecto y que otro colabore, tenes que pensar como el otro va tomar tu proyecto y lo va a hacer andar. Ahi es donde entra el make para mí.
Yo estoy intentando compartir en github un proyecto y por lo que he visto la mejor manera de hacerlo es creando una carpeta con las HAL, una carpeta con el proyecto, y configurar el make para que encuentre todo. Luego subir a github y ya cualquiera, con cualquier IDE/editor de texto puede programar y usando el make puede compilar. Sino tienes que dejar los proyectos armados para todos los IDE que hay dando vueltas, como hace ST para SE, Atollic, Kile, etc.

Coincido que en el trabajo diario, a mi me resulta mucho mas facil el eclipse en windows y solo hay cosas puntuales donde es mejor o se hace necesario ir al fondo y hacer el make, etc.
Quizá ahora si empiezo a hacer los propios make y puedo compilar sin IDE me termina gustando más y tiro a la mierd... el eclipse... jajaja ya veremos.

Saludos!
-
Leonardo Garberoglio

Desconectado colotron

  • PIC12
  • **
  • Mensajes: 69
    • Canal de YouTube
Re:Programacion orientada a objetos pi3
« Respuesta #32 en: 06 de Marzo de 2017, 12:10:51 »
Ya que estoy pregunto , algun link para comprar la Raspberry pi 3 , y cual es la mejor opcion , en ebay o pagina directa de vendedor ...Muchas gracias a todos

Si estás en Argentina yo la compré en Electrocomponentes a aprox. $1000 (/16 -> U$S 62.50).
También te ofrecen gabinete y algun accesorio más.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4335
    • Picuino
Re:Programacion orientada a objetos pi3
« Respuesta #33 en: 06 de Marzo de 2017, 12:19:51 »
Quizá ahora si empiezo a hacer los propios make y puedo compilar sin IDE me termina gustando más y tiro a la mierd... el eclipse... jajaja ya veremos.
Yo al final le di la patada al eclipse.
Make lleva funcionando desde hace décadas de la misma forma. Tu preparas ahora un Makefile y el día del juicio final lo compilas sin problemas.
Con los IDEs la cosa no funciona igual. Cada dos por tres cambian y evolucionan, además como bien has dicho hay muchos IDEs diferentes y cada uno te obliga a aprender dónde cambiar los parámetros y configuraciones y muchas veces no se pueden trasportar proyectos de uno a otro.
Si aprendes los comandos de compilación de gcc y a manejar proyectos con make, será igual en todos los S.O. para todas las personas y por muchísimo tiempo no cambiará nada.

La primera vez es muy duro enfrentarse a la línea de comandos Linux, pero una vez que aprendes a utilizarla, te sirve para siempre y en todos los entornos.

Un saludo.


Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2173
Re:Programacion orientada a objetos pi3
« Respuesta #34 en: 06 de Marzo de 2017, 13:13:02 »
Ya que estoy pregunto , algun link para comprar la Raspberry pi 3 , y cual es la mejor opcion , en ebay o pagina directa de vendedor ...Muchas gracias a todos

Si estás en Argentina yo la compré en Electrocomponentes a aprox. $1000 (/16 -> U$S 62.50).
También te ofrecen gabinete y algun accesorio más.

http://articulo.mercadolibre.com.ar/MLA-635596858-combo-raspberry-pi-3-gabinete-3-disipadores-_JM vendió 427 al día de hoy.

https://www.aliexpress.com/item/Original-Raspberry-Pi-3-Model-B-1GB-LPDDR2-BCM2837-64-bit-Quad-Core-1-2-GHz/32623151958.html (USD36.50 * 1.5 * 16 = $876)

te combiene en ML creo yo, la tenes en 1 semana y solo te cuesta $100 más

Saludos!
-
Leonardo Garberoglio

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 224
Re:Programacion orientada a objetos pi3
« Respuesta #35 en: 06 de Marzo de 2017, 15:18:47 »
Ya que estoy pregunto , algun link para comprar la Raspberry pi 3 , y cual es la mejor opcion , en ebay o pagina directa de vendedor ...Muchas gracias a todos

Si estás en Argentina yo la compré en Electrocomponentes a aprox. $1000 (/16 -> U$S 62.50).
También te ofrecen gabinete y algun accesorio más.



Muchas gracias Leonardo !!! Gracias a todos

http://articulo.mercadolibre.com.ar/MLA-635596858-combo-raspberry-pi-3-gabinete-3-disipadores-_JM vendió 427 al día de hoy.

https://www.aliexpress.com/item/Original-Raspberry-Pi-3-Model-B-1GB-LPDDR2-BCM2837-64-bit-Quad-Core-1-2-GHz/32623151958.html (USD36.50 * 1.5 * 16 = $876)

te combiene en ML creo yo, la tenes en 1 semana y solo te cuesta $100 más

Saludos!
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 224
Re:Programacion orientada a objetos pi3
« Respuesta #36 en: 19 de Marzo de 2017, 13:18:21 »
Hola a todos , me llego al fin la Raspberry 3 , ya la tengo instalada con el QT , porsupuesto como siempre el linux me esta haciendo renegar , siempre hay algo que no funciona bien , hasta ahora no se si soy yo el del problema , o es allgo del mismo raspbian , por llo pronto ya ogre compilar en la rspb y ejecutat programas , ahora estaba intentando hacer el cross con el croos tool ....estaba mirando esta pagina

http://visualgdb.com/tools/QtCrossTool/

hasta ahora va todo bien , desp posteo si termino !!!

Saludos
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado planeta9999

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2736
Re:Programacion orientada a objetos pi3
« Respuesta #37 en: 19 de Marzo de 2017, 22:18:48 »
.

Estoy subiendo a MEGA los binarios de QT5 para Raspberry Pi3 con compilación cruzada, listos para usar. El comprimido son 1.5GB, y una vez descomprimido son unos 5.5Gb.

En cuanto haya subido, pongo el enlace para descarga directa, así los interesados no tienen que perder el tiempo con la pesadilla de tener que compilar los fuentes.

Y en cuanto tenga un rato, documento en un post la instalación y configuración completa de QTCreator y QT5 para Raspberry Pi3 con compilación cruzada. Yo ya empiezo a trabajar en un proyecto esta semana próxima.

Desconectado planeta9999

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2736
Re:Programacion orientada a objetos pi3
« Respuesta #38 en: 19 de Marzo de 2017, 22:42:03 »
.

Ahí va enlace con los binarios completos de QT5 para Raspberry Pi3 con compilación cruzada, descomprimir y listos parar usar, sin perder el tiempo con la gaita esa de tener que compilar los fuentes.
https://mega.nz/#!ZAtH3ZYJ!DH66_R08GhZlE6_Z9wvPI1VQjNh1-Sp_JqI5kc6TQB4

Descargar y descomprimir en C:\SysGCC, de manera que quede como C:\SysGCC\Raspberry. Y dentro de la vía C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\local , tendremos el subdirectorio qt5 con los binarios.

Ahora toca instalar y configurar QT Creator en el PC, en cuanto tenga un rato abro un hilo con instrucciones detalladas para echar a andar todo el entorno con compilación cruzada.




« Última modificación: 19 de Marzo de 2017, 22:47:36 por planeta9999 »

Desconectado planeta9999

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2736
Re:Programacion orientada a objetos pi3
« Respuesta #39 en: 20 de Marzo de 2017, 04:12:03 »
Hola a todos , me llego al fin la Raspberry 3 , ya la tengo instalada con el QT


Ojo, que así NO funcionará. Si vas a instalar QT Creator para compilación cruzada, NO debes de instalar QT directamente en la Raspberry o cuando hagas la sincronización se estropeará todo y la compilación de los fuentes te darán error. Eso ya me pasó a mi.

Para compilación cruzada, TODO se instala desde el PC. En cuanto pueda colgaré un post al detalle de como instalarlo y configurarlo todo. De momento he subido a MEGA el QT5 para Raspberry Pi3, ya compilado, así no perderás el tiempo compilando fuentes.

Un problema que tengo por resolver es el acceso con el Escritorio Remoto, desde el PC al Raspberry. Al pulsar las teclas, las letras no se corresponden con lo que pulsas, hay que configurar algo del perfil del teclado para que vaya bien. Mientras le entré con otro software (creo que con Putty y X11), pero lo ideal es usar el Escritorio Remoto.
« Última modificación: 20 de Marzo de 2017, 04:16:50 por planeta9999 »

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 224
Re:Programacion orientada a objetos pi3
« Respuesta #40 en: 20 de Marzo de 2017, 09:26:56 »
Hola a todos , me llego al fin la Raspberry 3 , ya la tengo instalada con el QT


Ojo, que así NO funcionará. Si vas a instalar QT Creator para compilación cruzada, NO debes de instalar QT directamente en la Raspberry o cuando hagas la sincronización se estropeará todo y la compilación de los fuentes te darán error. Eso ya me pasó a mi.

Para compilación cruzada, TODO se instala desde el PC. En cuanto pueda colgaré un post al detalle de como instalarlo y configurarlo todo. De momento he subido a MEGA el QT5 para Raspberry Pi3, ya compilado, así no perderás el tiempo compilando fuentes.

Un problema que tengo por resolver es el acceso con el Escritorio Remoto, desde el PC al Raspberry. Al pulsar las teclas, las letras no se corresponden con lo que pulsas, hay que configurar algo del perfil del teclado para que vaya bien. Mientras le entré con otro software (creo que con Putty y X11), pero lo ideal es usar el Escritorio Remoto.


Muchas gracias Planeta !!! la verdad es que estaba medio desauciado con este tema , no puede ser que tenga que perder dias enteros para poder instalar programas , la idea de todo esto es programar !!! pero bueno ...mil gracias por los archivos en MEGA los estoy bajando , cualquier cosa te pregunto , ojala todo funcione bien !!! ya tengo ganas de empezar a programar tranquilo

Abrazo
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 224
Re:Programacion orientada a objetos pi3
« Respuesta #41 en: 20 de Marzo de 2017, 12:26:20 »
Hola a todos , me llego al fin la Raspberry 3 , ya la tengo instalada con el QT


Ojo, que así NO funcionará. Si vas a instalar QT Creator para compilación cruzada, NO debes de instalar QT directamente en la Raspberry o cuando hagas la sincronización se estropeará todo y la compilación de los fuentes te darán error. Eso ya me pasó a mi.

Para compilación cruzada, TODO se instala desde el PC. En cuanto pueda colgaré un post al detalle de como instalarlo y configurarlo todo. De momento he subido a MEGA el QT5 para Raspberry Pi3, ya compilado, así no perderás el tiempo compilando fuentes.

Un problema que tengo por resolver es el acceso con el Escritorio Remoto, desde el PC al Raspberry. Al pulsar las teclas, las letras no se corresponden con lo que pulsas, hay que configurar algo del perfil del teclado para que vaya bien. Mientras le entré con otro software (creo que con Putty y X11), pero lo ideal es usar el Escritorio Remoto.

Bueno ya empece de nuevo ....me estaba volviendo loco ...baje el archivo de planeta de MEGA , lo descomprimi en SYSGCC tal cual lo propone planeta, desinstale el qt que tenia en la pc , ahora tengo los archivos necesarios en la pc , la pregunta es , el qt de la pc ?? lo instalo convencionalmente ?? o como ?? y si puedo usar SMARTtty para hacer la instalacion en la RPI ??

<muchas gracias

Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado planeta9999

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2736
Re:Programacion orientada a objetos pi3
« Respuesta #42 en: 20 de Marzo de 2017, 13:10:06 »
.

Si, el QT en el PC instálalo normal, el Editor QT Creator y las librerías QT5, la misma versión con la que se han creado los binarios para QT5 (5.8.0). En el Raspberry es donde no se debe de instalar directamente, solo desde el PC se transfieren todos los binarios y las librerías para compilación cruzada.

De esta manera en la Raspberry no tienes instalado QT Creator, solo las librerías QT5 para que se puedan ejecutar los programas que compiles en el PC con compilación cruzada. Es posible que QT Creator se pueda instalar en el Raspberry, pero no tiene utilidad para trabajar con compilación cruzada, todos los fuentes se crean, editan y compilan en el PC, y se transfieren automáticamente al RPY3 por Ethernet.
« Última modificación: 20 de Marzo de 2017, 13:13:46 por planeta9999 »

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 224
Re:Programacion orientada a objetos pi3
« Respuesta #43 en: 21 de Marzo de 2017, 13:21:34 »
.

Si, el QT en el PC instálalo normal, el Editor QT Creator y las librerías QT5, la misma versión con la que se han creado los binarios para QT5 (5.8.0). En el Raspberry es donde no se debe de instalar directamente, solo desde el PC se transfieren todos los binarios y las librerías para compilación cruzada.

De esta manera en la Raspberry no tienes instalado QT Creator, solo las librerías QT5 para que se puedan ejecutar los programas que compiles en el PC con compilación cruzada. Es posible que QT Creator se pueda instalar en el Raspberry, pero no tiene utilidad para trabajar con compilación cruzada, todos los fuentes se crean, editan y compilan en el PC, y se transfieren automáticamente al RPY3 por Ethernet.


Bueno aca estoy todavia sin poder hacer andar la cross compilation , Planeta 9999 , ya baje los archivos de Mega , y los puse en raspberry tal como dice en las instrucciones , ahora el tema es el siguiente , a la Raspberri , la inicialice de 0 , le instale qt4 luego instale en el pc Smarttty y luego configure el QT de la PC , el cual creoq que no me quedo bien ,segui estos pasos http://www.ics.com/blog/configuring-qt-creator-raspberry-pi  , y creo que en el paso 5 no estoy haciendo bien las cosas , lo otro que no termino de entender es que los archivos que descomprimi en SYSGCC/raspberry , deberia pasarselos a la RPI , con el Smarttty es asi verdad ?? , pero no se que archivos exactamente pasarle y como , me imagino deberan ser los archivos que estan compilados , y una ves que este eso y teniendo bien configurado el QT ya todo deberia funcionar ....

Espero comentarios y desde ya mil gracias ...y mil disculpas porque todavia no logro entender como es esto

Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2173
Re:Programacion orientada a objetos pi3
« Respuesta #44 en: 21 de Marzo de 2017, 14:29:50 »
Lo que yo entiendo es que hay dos formas de compilar el binario para un SO determinado. La comun es compilarlo en el mismo SO en el que va a correr la aplicacion. eso lo conoce todo el mundo y es la forma habitual de trabajar.
La otra es la que se llama copilacion cruzada y es compilar en un SO la aplicacion que va a correr en otro SO. En este caso compilar en windows una aplicacion que va a correr en linux.
En este caso lo que se hace en el SO linux es "nada". En el linux de la raspberry pi no necesitas nada más que el sistema operativo funcionando. Todo el trabajo se hace en la PC. Por eso planeta compilo los fuentes en windows e instala el QT en windows, porque toda la programacion se hace en windows. una vez que se crea la aplicacion y se compila en windows se deben transferir los binarios (y eventualmente alguna librería si es que no se incluye en los binarios) a la raspbery pi y listo, tiene que funcionar.
Entendiendo este concepto quizás te sea más facil seguir los plasos de planeta.

PD: que ganas de jugar una raspberry!!!!

saludos
-
Leonardo Garberoglio