我遇到了C Makefile的问题。
这是bash中Makefile的代码:
CC=gcc
CFLAGS=-g -Wall
CCLINK=$(CC)
OBJS=flight.o runway.o airport.o main.o
RM=rm -f
# Creating the executable (airport)
airport: $(OBJS)
$(CCLINK) -o airport $(OBJS)
# Creating object files using default rules
main.o: main.c airport.h ex2.h flight.h runway.h
airport.o: airport.c airport.h ex2.h flight.h runway.h
runway.o: runway.c runway.h ex2.h flight.h
flight.o: flight.c flight.h ex2.h
# Cleaning old files before new make
clean:
$(RM) airport *.o *.bak *~ "#"* core
当我制作文件时,它说:
make: `airport` is up to date.
之后 - 我可以用bash打电话给“机场”,它让我按照我想要的方式输入一些输入。
但是当我试图检查“机场”是否由以下人员编制时:
gcc -g -Wall -c airport
我收到错误说:
gcc: airport: linker input file unused because linking not done
有人知道可能是什么问题吗?
谢谢! Gavriel。
答案 0 :(得分:1)
Makefile
的目的是避免重新编译文件,如果文件的来源不变;当它发生时,make
表示该文件是最新的。
如果您想再次检查警告,这可能会很烦人。然后,只需通过键入
,调用make
重新编译所有内容
make clean ; make
Makefile
的另一个目标是避免自己输入gcc
命令,容易出错。例如,在问题的最后,您要求从可执行文件(选项-c
)创建一个目标文件,这是错误的。制作目标文件的好方法是调用make
:
make airport.o
最后,要生成可执行文件,您可以键入
make airport
或者,因为airport:
是第一个目标,所以输入
make