Qué sucede cuando abrimos Arduino IDE y compilamos?
Al encender el IDE se crea en /tmp una carpeta “untitled...tmp” con nuestro archivo sketch con la fecha actual por ej: sketch_nov01a.
Pero al compilar un Sketch vacio, se nos crean 2 carpetas más en /tmp:
arduino_cache… vacía
arduino_build… con las siguientes carpetas y archivos:
Carpeta “core” con todo el código fuente y la librería estática “core.a” del Arduino conectado a nuestro Raspberry Pi / PC/ MAC.
Carpeta “libraries” con las librerias incluídas en nuestros Sketch, en este caso vacía.
Carpeta “preproc” con el archivo C plus plus “ctags_target_for_gcc_minus_e.cpp” para el pre-procesador.
Carpeta “Sketch” con nuestros 3 Archivos:
1. “sketch_nov01a.ino.cpp” que es nuestro sketch convertido a cpp por el compilador.
2. “sketch_nov01a.ino.cpp.d” Un archivo .d con la lista de todos los archivos de código fuente que se van a incluír.
3. “sketch_nov01a.ino.cpp.o” el programa compilado.
Archivo “build_options.json” con las opciones de compilación:
Ruta a archivos adicionales.
Ruta a librerías.
Propiedades de compilación.
Ruta a carpeta Hardware.
Ruta a librerías cargadas por nosotros.
Versión del IDE.
Ruta de nuestro Sketch.
Ruta a la carpeta tools.
–> Archivo “includes.cache”.
–> Archivo “sketch_nov01a.ino.eep”.
–> Archivo “sketch_nov01a.ino.elf”.
–> Archivo “sketch_nov01a.ino.hex”.
–> Archivo “sketch_nov01a.ino.with_bootloader.hex”.
Una vez compilado nuestro Sketch el programa de salida “sketch_nov01a.ino.cpp.o” es linkeado junto a la librería estática “core.a” comparando que librerías se usan en nuestro programa para excluír las no necesarias. Luego nuestro sketch es linkeado nuevamente contra esta combinación para suprímir las librerías incluídas reduciendo considerablemente el tamaño final de nuestro Sketch, convirtiéndolo a hexadecimal solo con las librerías necesarias quedando este archivo .hex listo para ser cargado a nuestra placa Arduino.
Una vez cargado nuestro Sketch todo esto desaparece.
Nuestro Arduino IDE trabaja con los lenguajes de programación C y C++ mediante el Compilador “avr-gcc and avr-g++” pero no podemos usar la totalidad del lenguaje C ni del lenguaje C++ Mejor Info aca: “Compilador avr gcc g++“
Para usar completamente C++ podemos usar la librería:
Standard C plus plus descargando la librería e instalando desde la opción Programa -> Incluír Librerías -> Añadir Librería .ZIP