Zu deiner Frage1:
GCC sollte dir (unabhängig davon, ob du die "Wall" option verwendest) eine Fehlermeldung geben (und das kompilieren abbrechen), wenn du falsche Syntax (Befehle, die keinen Sinn machen, wie deine fehldenden Anführungszeichen) verwendest.
Ich würde darauf tippen, dass du vergessen hast deine .c Datei nach dem einfügen des Fehlers zu speichern?! (Auf deinen Screenshots wird angezeigt, dass die Datei ungespeicherte Änderungen hat)
Zu deiner Frage2:
Das Bild hier fasst den unterschied zwischen Compilen und linken gut zusammen.
Kompilieren übersetzt nur deine einzelnen .c dateien.
Linken verbindet die übersetzten C Dateien (und andere Bibliotheken, die du benutzt) zu einem fertigen Programm.