IDE compilatie vraagstuk

Om mezelf er eens wat verder in te verdiepen heb ik mezelf het doel gesteld om eens te kijken hoe de arduino IDE het programma compileerd en zo de gewilde HEX file creeerd.
Dus ik verbose aangezet en ik zie tot mijn verbazing de volgende tekst voorbij schieten:
C:\Users\XXX\AppData\Local\Temp\buildXXX.tmp\Blink.cpp

Ik ben vrij beginnend met de diepere C en C++ manieren, maar ik kan niet vinden hoe de IDE van een platte C een "vollere" C++ file maakt. Maar vooral: Waarom kan ik die stap niet zien in de verbose output?
Mijn doel is om via de command promt het hele stuk na te bootsen en (natuurlijk) loop ik bij de eerste stap al tegen een probleem aan...

De blink.ino:

int led = 13;

void setup() {                
  pinMode(led, OUTPUT);     
}

void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

de blink.cpp:

#line 1 "Blink.ino"

#include "Arduino.h"
void setup();
void loop();
#line 2
int led = 13;

void setup() {                
  pinMode(led, OUTPUT);     
}

void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Kan iemand mij misschien de goede richting heen sturen hoe de IDE van de INO (Waarvan ik dacht dat het een normale C file was aangevult met arduino libs) de cpp file maakt?

Nou ik denk dat het toch wel wat complexer is. Maar leef je uit : GitHub - arduino/Arduino: open-source electronics platform

De ino file is eigenlijk een cpp file.
Maar de Arduino IDE doet dingen om het leven makkelijker te maken.
BV de #include "Arduino.h" toevoegen bovenaan de file.
En ook functie declaraties toevoegen.
Maar dat is echt alles.

Arduino IDE compileert als volgt
alles in de core folder cpp+c+asm->o-> archive
alles in de sketch folder en libraries cpp+c+asm->O
alle O's + archive linken tot hex

De exacte commando's die gebruikt worden kan je vinden in platform.txt in de hardware folder.

Met vriendelijke groet
Jantje

PS: Merk op dat ik expliciet o en O gebruik om de andere flow te benadrukken.

Top, bedankt heren.

er zijn zoveel "antwoorden" op zoveel websites dat ik door de bomen het bos niet meer kan zien...

Ik ga verder met testen, falen, aanpassen, opnieuw testen en hopelijk het antwoord vinden. Mocht ik ergens iets leuk vinden zal ik het hier posten.

Ik weet niet wat je bedoeling is maar voor het geval je het niet weet: er zijn al heel wat alternatieven van de Arduino IDE die gewoon op de commando lijn werken.
Bijvoorbeeld de Arduino Eclipse Plugin named Sloeber (sloeber.io) maakt make files aan die gewoon via make dan builden.

De nieuwste Arduino IDE's werken zelf ook al op de commando lijn.

Mijn doel is om uiteindelijk arduino sketches te kunnen aanpassen via een normale tekstverwerker (notepad) wat op iedere PC aanwezig is, kunnen compileren via command lines en verzenden, zonder hiervoor programma's te hoeven installeren. En voor je het afvraagt: Het heeft dit keer niets met admin rechten te maken. Meer met privacy en de vrijheid en onafhankelijkheid van de computer.

Het verzenden was makkelijk om te realiseren via avrdude. Ik hoop dat zoiets ook te doen is met simpele soortgelijke executables zoals avr-gcc of avr-g++.

Een secundaire reden is om, voor mezelf en zelfontplooing, wat meer inzicht te krijgen in de stappen die C en C++ programma's nemen van idee naar executable (Object files, linking enz).

Tijdens dit kwam ik er dus achter dat van de INO file, via preprocessing, een CPP file gemaakt werd en kan deze stap niet terugvinden. Toen werd mijn interesse gewekt :slight_smile:

Een klein beetje waar deze persoon ook tegenaan is gelopen volgens mij:
http://arduinodev.com/arduino-uploader/

Ik ga deze sourcecode eens doorspitten :slight_smile:

To be continued

Niets mis mee, maar dan kan je net zo goed gelijk naar de GCC/G++ compiler gaan. Dat je niet gelijk terug naar MsDos gaat.......of nog verder..... CP/M

Als je met notepad wilt editeren raad ik de arduino command line aan.
En natuurlijk ook notepad++

C-F-K:
Het heeft dit keer niets met admin rechten te maken. Meer met privacy en de vrijheid en onafhankelijkheid van de computer.

Dan pak je toch gewoon de non-install versie en gooi je deze eventueel op een USB stick?

Windows notepad is echt een $&%&^&%^*% editor om te gaan zitten gebruiken om je code te schrijven. De Arduino IDE is ook niet zaligmakend maar beter dan dat. Wil je een betere editor, dan inderdaad Notepad++. Wil je een uitgebreidere IDE dan is Eclips met de Arduino plugin een goeie.