我有4个文件: 1.C , 升·小时 , 2.C , 2.H 。我需要一个makefile,它将从这4个文件中创建一个动态库(.so)。我试图写一个像这样的makefile文件:
library.so:1.c 1.h 2.c 2.h
但它没有用。如果有人帮助我,太好了,谢谢。
就像是
CC=gcc CFLAGS= -Wall -g -O -fPIC RM= rm -f .PHONY: all clean all: library.so clean: $(RM) *.o *.so library.so: 1.o 2.o $(LINK.c) -shared $^ -o $@ 1.o: 1.c 1.h 2.h 2.o: 2.c 1.h 2.h
但这未经测试!我假设Linux使用GNU make,并且目录仅包含您的库的源代码(带有上面的Makefile),这可能不是一个好习惯- 您可能需要一个测试用例-(您可能有一个特殊的Makefile规则,%.pic.o取决于%.c,等等…)
Makefile
%.pic.o
%.c
提示:用于make -p了解内置规则。然后make --trace或(使用remake)remake -x进一步了解make 正在做什么。
make -p
make --trace
remake -x
make