GNU Machen Sie ein völlig anderes Ergebnis

8

Das ist verwirrend. Ich habe mein Makefile:

%Vor%

es kompiliert zuerst erfolgreich, aber dann hörte es ohne Grund auf und das war die Ausgabe:

%Vor%

Das Problem war, ich habe nicht einmal gesagt, dass es "c ++" im Makefile verwenden soll, sondern "g ++". Auch wenn ich CC_FLAGS gelöscht habe, war -c immer noch da. Es ist, als hätte Make einen eigenen Kopf.

Wenn ich make print zum Ausdrucken meiner Variablen verwende, scheint es in Ordnung zu sein:

%Vor%

Jede Hilfe oder Beratung wird geschätzt. Danke!

Aktualisieren

Ich habe mein print aktualisiert, um die erwartete Ausführung von compile zu drucken:

%Vor%

Ergebnis:

%Vor%

Das beweist, dass make weiß, was ich wollte, aber wenn es erstellt wird, ist es völlig anders: c++ statt g++ ?!

Update 2:

c++ ruft clang auf, das auf meinem System installiert ist.

Lösung von Alex B:

  

Aber von der Kompilier-Befehlszeile sieht es aus, als würde Make versuchen   Verwenden Sie die implizite Suffixregel und ignorieren Sie Ihre Musterregel.

Ich probierte .SUFFIXES: und ja, es wurde eine No-Rule gefunden. Danke, ich werde gehen und das Handbuch konsultieren.

    
ihsoy ih 20.12.2012, 03:31
quelle

1 Antwort

2

Wie ich im Kommentar gesagt habe, funktioniert es in meiner Umgebung (Mac OSX, GNU Make 3.81), so dass das Makefile, das Sie gepostet haben, unvollständig ist oder Sie eine andere Version von Make verwenden.

Aber von der Kompilierungsbefehlszeile sieht es so aus, als ob Make versucht, die implizite Suffixregel zu verwenden, und ignoriert Ihre Musterregel.

Sie können Make anweisen, Standardregeln zu ignorieren, indem Sie eine leere Liste von Suffixen angeben, damit Sie Ihr Problem weiter beheben können.

%Vor%     
Alex B 20.12.2012, 05:03
quelle

Tags und Links