#编译静态库
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
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等已知路径