目录结构:
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
本文介绍了一个名为CommonLib的软件库的构建过程。该库使用GCC和G++进行编译,并生成了共享库和静态库。文章详细展示了Makefile的内容,包括如何指定编译器、链接器、归档工具及它们的参数,还展示了如何通过通配符获取源文件并生成目标文件。
1620

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



