编译esal/c程序的makefile文件如何写
再此向各位高手求教如何编一些进行esql/c程序的makefile文件,希望高手能给予指点,能将其中的各条语句进行解释就更好了,高分求助...
再此向各位高手求教如何编一些进行esql/c程序的makefile文件,希望高手能给予指点,能将其中的各条语句进行解释就更好了,高分求助
展开
展开全部
你可以根据这样的方法来编写:
b074@gliethttp:~/work/gunzip$ cat Makefile
CC = gcc-4.1
LD = gcc-4.1
CFLAGS = -Wall -c -Dgliethttp -I.
LDFLAGS = -lpthread
SRCS = $(wildcard *.c)
OBJS = $(patsubst %c,%o,$(SRCS))
TARGET = gliethttp
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%o: %c
$(CC) $(CFLAGS) -o $@ $<
clean:
@rm -f *.o $(TARGET)
编译当前Makefile所在目录下的所有.c文件
执行
make
make clean
b074@gliethttp:~/work/gunzip$ cat Makefile
CC = gcc-4.1
LD = gcc-4.1
CFLAGS = -Wall -c -Dgliethttp -I.
LDFLAGS = -lpthread
SRCS = $(wildcard *.c)
OBJS = $(patsubst %c,%o,$(SRCS))
TARGET = gliethttp
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%o: %c
$(CC) $(CFLAGS) -o $@ $<
clean:
@rm -f *.o $(TARGET)
编译当前Makefile所在目录下的所有.c文件
执行
make
make clean
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
与一般的makefile没有多大区别,给你个小例子
.SUFFIXES:.ec .c .o
ECC = esql
INCL_DIR = $(HOME)/include -I$(INFORMIXDIR)/incl/esql
all:exe_file
exe_file:$(OBJS)
$(ECC) -o $@ $(OBJS)
.ec.o:
$(ECC) -c -I$(INCL_DIR) $<
@rm $*.c
.SUFFIXES:.ec .c .o
ECC = esql
INCL_DIR = $(HOME)/include -I$(INFORMIXDIR)/incl/esql
all:exe_file
exe_file:$(OBJS)
$(ECC) -o $@ $(OBJS)
.ec.o:
$(ECC) -c -I$(INCL_DIR) $<
@rm $*.c
追问
能将这个例子予以详解一下吗?我是初学者不是很懂
追答
.SUFFIXES:.ec .c .o #定义make可识别的文件扩展名
ECC = esql
INCL_DIR = $(HOME)/include -I$(INFORMIXDIR)/incl/esql
#以上两个是宏定义,(1)用ECC代表esql,(2)指定include搜索路径
all:exe_file #告诉make编译时生成的可执行文件是:exe_file
OBJS=src_file.o #定义目标文件
exe_file:$(OBJS) #告诉make exe_file由目标文件OBJS生成
$(ECC) -o $@ $(OBJS) #$@=exe_file 此句等价于:esql -o exe_file src_file.o
#以上是执行文件exe_file的编译方法。
.ec.o:
$(ECC) -c -I$(INCL_DIR) $< #此句等价于:esql -c
@rm $*.c #删除中间文件src_file.c $(HOME)/include -I$(INFORMIXDIR)/incl/esql
src_file.ec
#以上为.ec文件变成.o文件的方法,make会自动根据目标文件查找相应的源代码文件。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询