如何创建make文件来运行例如XML解析器与以下命令行命令创建一个make文件
gcc source.c -I/usr/include/libxml2 -lxml2 -o output
我使用此包括使用命令行编译时的libxml。
这将如何使用make文件而不是命令行使用?
如何创建make文件来运行例如XML解析器与以下命令行命令创建一个make文件
gcc source.c -I/usr/include/libxml2 -lxml2 -o output
我使用此包括使用命令行编译时的libxml。
这将如何使用make文件而不是命令行使用?
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进行缩进 - 所以如果您复制粘贴,您需要修复这些空格。
在其simpliest形式:
output: source.c
gcc source.c -I/usr/include/libxml2 -lxml2 -o output
现在可以说的make
要么make output
并获得output
建成。
如果你让自己有输出文件同名的源(无.c后缀),你可以做:
CPPFLAGS = -I/usr/include/libxml2 LDFLAGS = -lxml2
只需在你的makefile这两条线,
make source
将查找source.c并使用适当的标志生成名为'source'的可执行文件。
请注意,命令行($(CC)和$(LD)行)*必须*以制表符开始,而不是空格。 – 2011-04-07 16:59:27
什么 - 墙吗? – jarryd 2011-04-07 18:38:59
@ Helium3:启用大部分编译器警告 - 您应该制定一个习惯来告诉您关于许多常见问题。 – Erik 2011-04-07 18:39:50