// makefile.conf
.SUFFIXES : .c .o
cc = gcc
CFLAG = -c
OFLAG = -o
O2FLAG = -O2
WPIFLAG = -lwringPi
RM = rm -rf
TARGET_SRCS = main.c
TARGET_OBJS = $(TARGET_SRCS:$.c=$.o)
TARGET_NAMES = $(TARGET_SRCS:$.c=$)
BINARY_NAME = LED_TEST
// makefile
include makefile.conf
$(TARGET_OBJS) : $(TARGET_SRCS)
$(CC) $(O2FLAG) $(CFLAG) $(OFLAG) $^
我正在尝试弄清楚gnu make如何工作以及如何使用它。但是,我是一个初学者。
我正在尝试在我的作业上使用make(不是强制性的,只是我的热情)来运行简单的代码,该代码通过使用wirepi点亮LED。
实际上只有一个main.c,我要创建的是运行的makefile
gcc -O2 -c -o main.o main.c
gcc -o main main.o -lwiringPi
由于我的上一个代码不起作用,(不断得到循环的main.c
我试图制作仅能运行的代码
gcc -O2 -c -o main.o main.c
但是我仍然收到main.c循环错误,我不知道这意味着什么。
我试图查找gnu make手册,但我认为,这需要我的一生才能理解。
因此,我试图查看代码,并根据自己的见解编写代码。
我想我了解makefile.conf的概念,但仍然不了解.SUFFIXES的功能。
[我理解这是为了使我用.c和.o制定规则,在makefile.conf之后的代码定义了将在makefile中使用的变量。]>
我该如何纠正代码?
实际的“分配”仅花费了五分钟,包括添加注释。// makefile.conf .SUFFIXES:.c .o cc = gcc CFLAG = -c OFLAG = -o O2FLAG = -O2 WPIFLAG = -lwringPi RM = rm -rf TARGET_SRCS = main.c TARGET_OBJS = $(TARGET_SRCS:$ .c = $。o)TARGET_NAMES = $(TARGET_SRCS:$ ...
第一个makefile:
如果您真的很新,从简单的makefile开始直到您需要额外的功能通常会很有帮助。