我有一个头文件myheader.h和一个静态库libmylib.a文件在directory1目录下。在directory2目录下,我正在编写一个使用它们的程序。假设我在directory2中有main.c,它使用myheader.h和libmylib.a。如何创建一个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是库中的一个函数之一。