一尘不染

用于从现有文件创建(.so)文件的makefile

linux

我有4个文件: 1.C升·小时2.C2.H
。我需要一个makefile,它将从这4个文件中创建一个动态库(.so)。我试图写一个像这样的makefile文件:

library.so:1.c 1.h 2.c 2.h

但它没有用。如果有人帮助我,太好了,谢谢。


阅读 458

收藏
2020-06-07

共1个答案

一尘不染

就像是

 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,等等…)

提示:用于make -p了解内置规则。然后make --trace或(使用remakeremake -x进一步了解make 正在做什么。

2020-06-07