[英]GCC makefile on Linux with Multiple *.c files
我需要為這些文件創建一個MakeFile:
我嘗試了這個:
all: task1
task1 : main.o ceaser.o gcc main.o ceaser.o task1.o -o task1
ceaser.o : ceaser.c ceaser.h gcc -c -g -Wall ceaser.c
main.o : main.c gcc -c -g -Wall main.c
clean: rm *.o
cleanall: rm task1 *.o
但是,當我嘗試運行它時,它只是說:
make: Nothing to be done for `MakeFile1'.
為了使其成為一個適當的makefile,格式化至關重要,否則根本無法正常工作。
all: task1
task1 : main.o ceaser.o
gcc main.o ceaser.o -o task1
ceaser.o : ceaser.c ceaser.h
gcc -c -g -Wall ceaser.c -o $@
main.o : main.c
gcc -c -g -Wall main.c -o $@
clean:
rm *.o
cleanall:
rm task1 *.o
還要注意,這些字符必須是制表符,而不是每個動作行之前的空格。
為了增加愛德華的答案,簡化版
all: task1
task1 : main.o ceaser.o
gcc $^ -o $@
%.o : %.c
gcc -c -g -Wall $< -o $@
clean:
rm *.o
cleanall:
rm task1 *.o
哪里有“ $?” 是依賴項列表,“ $ @”是目標輸出,“ $ <”是第一個依賴項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.