目录结构:
CommomLib--|inc
--|src
--|obj
--|lib
--|Makefile
GCC := gcc
GXX := g++
LD := ld
AR := ar
LDFLAGS := -shared -fpic
ARFLAGS := -rc
CFLAGS := -g -Wall -fpic
DIR_INC := ./inc
DIR_SRC := ./src
DIR_OBJ := ./obj
DIR_LIB := ./lib
LIB_NAME := commonLib
SRC := $(wildcard ${DIR_SRC}/*.c)
OBJ := $(patsubst %.c, ${DIR_OBJ}/%.o, $(notdir ${SRC}))
SHARE_LIB := $(LIB_NAME).so
DYNAMIC_LIB := $(LIB_NAME).a
INC := -I${DIR_INC}
all:$(OBJ)
$(LD) $(LDFLAGS) -o $(DIR_LIB)/$(SHARE_LIB) $(OBJ)
#${AR} ${ARFLAGS} $(DIR_LIB)/$(DYNAMIC_LIB) $(OBJ)
${DIR_OBJ}/%.o:${DIR_SRC}/%.c
@echo Compiling $(OBJ) ...
$(GCC) $(CFLAGS) -o $@ -c $< ${INC} -g
clean:
rm -rf $(DIR_OBJ)/*.o $(DIR_LIB)/*.so $(DIR_LIB)/*.a
本文介绍了一个使用Makefile构建的库项目的目录结构及构建过程。包括如何定义编译器、链接器、归档器等工具,如何指定编译选项、链接选项及归档选项,并详细说明了源文件到目标文件、再到静态库和共享库的具体步骤。
1243

被折叠的 条评论
为什么被折叠?



