CC = gcc
CFLAGS = -std=c99 -Werror
VPATH = ./src:./include
.MAIN: libstring.so
.PHONY: clean
libstring.o: libstring.c libstring.h
$(CC) $(CFLAGS) -c $< -I ./include -o $@
libstring.so: libstring.o
$(CC) -fPIC -shared $< -o $@
clean:
rm -rf ./*.o ./*.so
<
上記のコードスニペットでは、自動変数を正しく使用しているかどうかに特に関心があります。これは、ソース/前提条件がACソースファイルの場合は機能しますが、オブジェクトファイルの場合は失敗するようです。
コンパイルすると、次のエラーが発生します。
gcc -fPIC -shared -o libstring.so
gcc: No input files specified