Ich versuche, mehr .c-Dateien durch Assembler zu kompilieren:Bypass Standardregel für make
%.S: %.c
$(XCC) -S -o [email protected] $(XCFLAGS) -c $<
%.o: %.S
$(XCC) -o [email protected] $(XCFLAGS) -c $<
test.a: test.o foo.o
$(LD) -o [email protected] $^ $(XLDFLAGS)
$ (XCC) ist ein Quer Kompilierung-Tool.
Eigentlich sehe ich:
cc -c -o test0.o test0.c
cc -c -o foo.o foo.c
Mutterzusammenstellung statt erforderlichen Quer Kompilierung läuft. Ich sehe aus wie eine Standardregel für% .c bis% .o Übersetzung wird anstelle der beschriebenen Kettenregel verwendet.
Wenn ich ein Muster auf direkte Beschreibung ändern, Kompilation ist ok:
test.S: test.c
$(XCC) -S -o [email protected] $(XCFLAGS) -c $<
foo.S: foo.c
$(XCC) -S -o [email protected] $(XCFLAGS) -c $<
%.o: %.S
$(XCC) -o [email protected] $(XCFLAGS) -c $<
Was mit Muster Kette ist falsch? Ist es möglich, die Standardregel für% .o zu deaktivieren?
die temporären * .S-Dateien zu halten, fügen Sie die Anweisung: '.PRECIOUS% .S' – user3629249