我在目錄1中有一個頭文件myheader.h和一個靜態庫libmylib.a文件。在目錄2中,我正在編寫一個使用它們的程序。假設我在main2中使用了myheader.h和libmylib.a。我如何創建一個Makefile來編譯和鏈接它們?如何在C 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是庫中的函數之一。
我不認爲'-L'幫助。 – 2013-02-23 21:27:04
鏈接似乎存在問題。 – ask 2013-02-23 21:52:14