Das folgende Makefile funktioniert nicht und ich bin mir nicht sicher, was passiert.
%Vor%Demo hat die Hauptfunktion und lib eine Reihe von Methoden, die in der Demo verwendet werden.
Ich habe das -c Flag zu lib hinzugefügt. Wenn ich aber make mache, bekomme ich:
%Vor% In Anbetracht Ihrer Aktualisierung mit dem Fehler überprüfen Sie, was Sie in der Zeile vor diesen ${CC}
-Befehlen haben. Viele make
-Programme erfordern ein echtes Tab-Zeichen, bevor die Befehle und Editoren, die zum Beispiel acht Leerzeichen einfügen, sie brechen. Das ist oft der Grund für die "Fehlende Separator" -Fehler.
Das können Sie mit dem folgenden Transkript sehen. In der Datei befinden sich vier Leerzeichen vor dem $(xyzzy)
:
Also, wenn ich es mache, bekomme ich den gleichen Fehler wie du:
%Vor%Aber wenn ich es bearbeite und diese vier Leerzeichen in einen Tab umwandle, funktioniert es gut:
%Vor%Sie haben auch ein Problem damit, wie Sie die Quelldateien kombinieren möchten.
Ohne ein -c
-Flag auf gcc
wird versucht, eine separate ausführbare Datei von jeder dieser Befehle zu erstellen, was mit ziemlicher Sicherheit zu Linker-Fehlern führt. Du wirst so etwas wie (einfach) brauchen:
oder (etwas komplexer):
%Vor%Das Problem mit der ersten Lösung ist, dass es beide Programme unnötig kompiliert, selbst wenn nur eines veraltet ist. Die zweite Lösung ist ein wenig intelligenter.