任务
建立inc目录存放.h文件,src目录存放.c文件,obj目录存放.o文件,dynamicMakefile目录存放.out文件和.so文件以及makefile
要求有以下三个.c文件(sum.c,sub.c,mul.c)生成动态库并由mathTest.c调用。
答案
src=$(wildcard ../src/*.c)
obj=$(patsubst ../src/%.c,../obj/%.o,$(src))#%代表通配符,和*类似
all:result
result:mylib.so
gcc ../mathTest.c -o $@ -l mylib -L ./ -I ../inc#添加头文件发生在预处理阶段
mylib.so:${obj}
gcc -shared -o libmylib.so $^
export LD_LIBRARY_PATH=./
../obj/%.o:../src/%.c
gcc -c $< -o $@ -fPIC
clean:
-rm -rf ./result ./libmylib.so ${obj}
.PHONY:all clean