değiştirdikten sonra Bunlar benim dosyalardır işe yaramadı: add.c add.h main.c makefileYap Dosyamı
Bu makefile geçerli: Sonra ana değiştirdikten sonra
main:main.o add.o
gcc -o main main.o add.o
main.o:$(@:%.o=%.c)
gcc -o main.o -c main.c
add.o:$(@:%.o=%.c) $(@:%.o=%.h)
gcc -o add.o -c add.c
.PHONY:clean
clean:
rm *.o -rf
rm main -rf
. c ve yap. Ama bana şunu söyledin: make: `main 'güncel.
benim makefile değiştirirseniz: Sonra main.c değiştirip yaptıktan sonra
main:main.o add.o
gcc -o main main.o add.o
main.o:main.c
gcc -o main.o -c main.c
add.o:$(@:%.o=%.c) $(@:%.o=%.h)
gcc -o add.o -c add.c
.PHONY:clean
clean:
rm *.o -rf
rm main -rf
. Çalışabilir. Nedeni bilmiyorum.
main.o:$(@:%.o=%.c)
add.o:$(@:%.o=%.c) $(@:%.o=%.h)
yılında
Sözdizimi 'main.o: $ (@:%. O =%. C)' yapmak için gerekeni yapmaz. $% 'Nin'% .c' ile '% .o 'karakterlerini değiştirir. $ @ 'Değerlendirildiğinde, 'main.o'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'yı içermediğinde, makro bir şey yapmasını engeller. ".o" ile ".o" yerine "ana .o: $ (@: o. –
"echo" $ (@:%. O =%. C) "' yazarak bir eylem satırı olarak tesadüfen gösterebilirsiniz. –
'echo" $ (@:%. O =%. C) "' düzeltmeyi gösterdi. (Main.c) Bunu yapmaya çalıştım. Ama işe yaramadı. – JCRunner