2011-04-07 102 views
0

如何创建make文件来运行例如XML解析器与以下命令行命令创建一个make文件

gcc source.c -I/usr/include/libxml2 -lxml2 -o output 

我使用此包括使用命令行编译时的libxml。

这将如何使用make文件而不是命令行使用?

回答

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 [email protected] $(OBJECTS) $(LDFLAGS) $(LIBS) 

.c.o: 
     $(CC) $(CFLAGS) -c $< -o [email protected] 

depend: 
     $(CC) $(CFLAGS) -MM $(SOURCES) > .depend 

clean: 
     rm -f $(OBJECTS) $(TARGET) 

.depend: depend 

include .depend 

您可以以此为模板,然后添加/修改源,TARGET,CFLAGS,LDFLAGS和LIBS。 Makefile需要TAB进行缩进 - 所以如果您复制粘贴,您需要修复这些空格。

+0

请注意,命令行($(CC)和$(LD)行)*必须*以制表符开始,而不是空格。 – 2011-04-07 16:59:27

+0

什么 - 墙吗? – jarryd 2011-04-07 18:38:59

+1

@ Helium3:启用大部分编译器警告 - 您应该制定一个习惯来告诉您关于许多常见问题。 – Erik 2011-04-07 18:39:50

0

在其simpliest形式:

output: source.c 
    gcc source.c -I/usr/include/libxml2 -lxml2 -o output 

现在可以说的make要么make output并获得output建成。

0

如果你让自己有输出文件同名的源(无.c后缀),你可以做:

 
CPPFLAGS = -I/usr/include/libxml2 
LDFLAGS = -lxml2 

只需在你的makefile这两条线,

 
make source 

将查找source.c并使用适当的标志生成名为'source'的可执行文件。