directory1にヘッダーファイルmyheader.hと静的ライブラリlibmylib.aファイルがあります。directory2には、それらを使用するプログラムを書いています。myheader.hとlibmylib.aを使用するmain.cがdirectory2にあるとします。それらをコンパイルしてリンクするためのMakefileを作成するにはどうすればよいですか?
今、私のmain.cに、追加しました
#include "../directory1/myheader.h"
現時点での私のMakefileは次のとおりです。
CC = gcc
INCLUDES = -I
CFLAGS = -g -Wall $(INCLUDES)
main: main.o ../directory1/libmylib.a
$(CC) main.o ../directory1/libmylib.a -o main
main.o: main.c ../directory1/myheader.h
$(CC) $(CFLAGS) -c main.c
次の警告が表示されます。
gcc -g -Wall -I -c main.c
/home/me/directory2/main.c:72: undefined reference to `foo'
collect2: ld returned 1 exit status
make: *** [main.o] Error 1
ここで、fooはライブラリ内の関数の1つです。