Die IDE erzeugt immer aus einem *.ino bzw. *.pde File ein *.cpp Programm. Dieses findet man im "Arbeitsverzeichnis". Wenn man die IDE auf "verbose" einstellt kann man sehen wo das liegt. Wichtig ist aber wie mkl0815 schon erwähnt hat, dass die IDE immer main.cpp mitkompiliert und auch linkt weil dort eben "main" implementiert wird.
Wenn man den Buildprozess von C einmal verstanden hat ist es leicht auf den ganzen *.pde / *.ino Zauber zu verzichten und die Bibliotheken direkt zu verwenden. Dann hat man alle Arduino Funktionen zur Verfügung und kann ganz normal C/C++ programmieren. Bequemerweise funktionieren dann die üblichen C Tools auch richtig. Insbesondere gilt das für die Fehlermeldungen vom Compiler bei denen dann plötzlich auch die Zeilennummer stimmt ![]()