
一 生成动态链接库的模板:
#######################
# Makefile
####################### # compile and lib parameter
CC := g++
LIBS :=
LDFLAGS :=
DEFINES :=
INCLUDE := -I.
CFLAGS :=
CXXFLAGS:= # link parameter
#LIB := libfunc.so
LIB := libfunc.a #link
$(LIB):func.o
$(CC) -shared -o -fPIC -o $@ $^
#compile
func.o:thread.c
$(CC) -c -fPIC $^ -o $@ # clean
clean:
rm -fr *.o
二 编译可执行程序的模板:
###########################################
#Makefile for simple programs
###########################################
INC=
LIB= -lpthread CC=gcc
CC_FLAG=-Wall PRG=threadtest
#OBJ=thread.o CThreadPool.o CThread.o CWorkerThread.o threadpooltest.o
OBJ=thread.o $(PRG):$(OBJ)
$(CC) $(INC) -o $@ $(OBJ) $(LIB) .SUFFIXES: .c .o .cpp
.cpp.o:
$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o .PRONY:clean
clean:
@echo "Removing linked and compiled files......"
rm -f $(OBJ) $(PRG)
测试结果:
1 参考文档: https://blog.csdn.net/lzx_bupt/article/details/7988192
2 代码所在路径: https://github.com/DyLanCao/iApply/tree/master/c_example/makefile