如何创建用于运行的make文件,例如使用以下命令行命令的xml解析器
gcc source.c -I/usr/include/libxml2 -lxml2 -o output
在使用命令行编译时,我使用它来包含libxml。
如何使用make文件而不是命令行使用?
答案 0 :(得分:3)
SOURCES:=source.c
OBJECTS:=$(SOURCES:%.c=%.o)
CC=gcc
CFLAGS=-g -Wall -I/usr/include/libxml2
LD=gcc
LDFLAGS=
LIBS=-lxml2
TARGET:=output
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(LD) -o $@ $(OBJECTS) $(LDFLAGS) $(LIBS)
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
depend:
$(CC) $(CFLAGS) -MM $(SOURCES) > .depend
clean:
rm -f $(OBJECTS) $(TARGET)
.depend: depend
include .depend
您可以将其用作模板,然后添加/修改SOURCES,TARGET,CFLAGS,LDFLAGS和LIBS。 Makefile需要使用TAB进行缩进 - 因此,如果您复制粘贴此内容,则需要修复空格。
答案 1 :(得分:0)
最简单的形式:
output: source.c
gcc source.c -I/usr/include/libxml2 -lxml2 -o output
现在您可以说make output
make
并建立output
。
答案 2 :(得分:0)
如果您允许自己让输出文件与源名称相同(没有.c后缀),您可以这样做:
CPPFLAGS = -I/usr/include/libxml2 LDFLAGS = -lxml2
在makefile中只有这两行,
make source
将查找source.c并使用适当的标志生成名为“source”的可执行文件。