簡體   English   中英

Linux上帶有多個* .c文件的GCC makefile

[英]GCC makefile on Linux with Multiple *.c files

我需要為這些文件創建一個MakeFile:

  1. main.c
  2. 停止器
  3. 停止器

我嘗試了這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM