Wenn Du Funktionen aus Libraries verwenden willst, musst Du auch mit den
Libraries linken.
Die Arduino-Schöpfer haben ärgerlicherweise die idiotische Idee gehabt,
Headerdateien (*.h) als "Library" zu bezeichnen, das ist falsch und
irreführend, wie Du gerade selbst festgestellt hast.
Um eine Library (das ist eine Sammlung von bereits compiliertem
Sourcecode, bei gcc sind das Dateien namens lib*.a) zu benutzen, genügt
es nicht, die Headerdatei einzubinden, die deklariert, was in der
Library vorhanden ist, sondern man muss seinem Compiler die Library als
Linkeroption mitteilen.
Bei gcc erfolgt das mit der Kommandozeilenoption -l
Um eine Library wie z.B. libirgendwas.a zu verarbeiten, lautet die
Kommandozeilenoption -lirgendwas.
Du hast bei Deinem Linkeraufruf explizit das Verwenden der
Standardlibrary unterbunden: -nostdlib
Abschließend:
So etwas wie "paste.net" bitte nicht benutzen. Dieses Forum bietet
selbst die Möglichkeit, Dateien anzuhängen; Deinen kurzen Schnipsel
hättest Du auch in [ pre ] [ /pre ] - Tags direkt in Dein Posting
einbinden können.