编译动态库,静态库makefile简单模板

#编译静态库
AR=ar
TARGET=xx.a
obj= a.o b.o ....


all:$(obj)
$(AR) ruc $(TARGET) $^


%.o:%.c
$(CC) -c $< $@


#调用静态库
TARGET=targetName
CC=gcc
MKLIB=/xx/yy/xx.a
obj= a.o b.o ...

all:$(obj) $(MKLIB)
$(CC) $^ -o $(TARGET)


%.o:%.c
$(CC) -c $< $@


动态库编译
TARGET= lib_xx.so
CC=gcc
obj= a.o b.o ...
all:$(obj)
$(CC) -share -fPIC -o $(TARGET) $^

%.o:%.c
$(CC) -fpic -c $< $@

动态库调用
TARGET=targetName
CC=gcc
MKLIB=-L/xx/yy -l_xx
obj= a.o b.o ...

all:$(obj) 
$(CC) $(MKLIB) $^ -o $(TARGET)

%.o:%.c

$(CC) $(MKLIB) -c $< $@


调用动态库时如果提示找不到,可以把动态库路径添加到环境变量LD_LIBRARY_PATH或者系统的/lib/ 或/usr/lib等已知路径

你可能感兴趣的:(linux)