现在的位置: 首页 > 综合 > 正文

Linux下makefile的编写

2013年10月29日 ⁄ 综合 ⁄ 共 792字 ⁄ 字号 评论关闭
#
# Simple .so Makefile
#
CC      := gcc
LD      := ld
CFLAGS  :=
LDFLAGS := -shared -fpic
SOURCE  := $(wildcard *.c)
OBJS    := $(patsubst %.c,%.o,$(SOURCE))
TARGET_LIB := libflac.so
CFLAGS+= -I./

all:$(OBJS)
#echo $(OBJS)
    $(LD) $(LDFLAGS) -o $(TARGET_LIB) $(OBJS)

%.o:%.c
    @echo Compiling $< ...
    $(CC) -c $(CFLAGS)  $< -o $*.o

.PHONY: clean

clean:
    rm *.so *.o -rf

这个是动态库
.SUFFIXES:.c

HOMEDIR=/code
COMDIR=$(HOMEDIR)/comlib
INCDIR=-I$(COMDIR)/include
   
CC=gcc
CFLAG=-O -DUNIX -DLIB -DDEBUG -DTRACE_FILE='"./trace"'
EDF=

help:
@echo Please input filename that will be made
@echo 'syntax: make <help|all|"filename">'

all: config debug file msg pid sem shm str tcp time udp

.c:
if [ -f $(COMDIR)/lib/libcom.a ]; then ar -x $(COMDIR)/lib/libcom.a; fi
$(CC) -c $ < $(CFLAG) $(INCDIR)
ar -rv libcom.a *.o
rm *.o
mv libcom.a $(COMDIR)/lib

把.c文件和此makefile文件放在一起!

另外把/code/include中 
就 OK! 
最终的 库存放在/code/lib中

这个是静态库

抱歉!评论已关闭.