未定义的make函数引用

时间:2013-08-27 20:02:02

标签: c unix makefile

我有一个关于在linux中使用makefile运行c文件的问题。

我编写了以下makefile,目的是构建关于程序adt(空间,集合,排列和平面)的测试,以及检查另一个名为mtm_space的程序(定义字符串后的第一个bloc)< / p>

CC=gcc
OBJS=plane.o set.o space.o main. decoding.o arrangement.o
DEBUG=# insert -g
CFLAGS=-std=c99 -Wall -Werror $(DEBUG) -pedantic-errors/
-DNDEBUG -L. lmtm2

space : $(OBJS) 
    $(CC) $(CFLAGS) -o $@ $^

arrangement.o: arrangement.c arrangement.h set.h plane.h
decoding.o: decoding.c space.h list.h arrangement.h set.h plane.h \
mtm_ex2.h
plane.o: plane.c plane.h
main.o: main.c space.h list.h arrangement.h set.h plane.h mtm_ex2.h \
decoding.h
set.o: set.c set.h
space.o: space.c space.h list.h arrangement.h set.h plane.h
mtm_space.o: mtmspace.c arrangement.h plane.h list.h set.h space.h mtm_ex2.h/
decoding.h

OBJS1=$(OBJS) space_test.o 

space_test : $(OBJS1)
    $(CC)  $(CFLAGS) -o $@ $^

arrangement.o: arrangement.c arrangement.h set.h plane.h
main.o: main.c space.h list.h arrangement.h set.h plane.h mtm_ex2.h \
 decoding.h
plane.o: plane.c plane.h
set.o: set.c set.h
space.o: space.c space.h list.h arrangement.h set.h plane.h
space_test.o: ./tests/space_test.c space.h list.h arrangement.h set.h plane.h

OBJS2= plane.o set.o

plane_test :$(OBJS2)
    $(CC)  $(CFLAGS) -o $@ $^

plane.o: plane.c plane.h
set.o: set.c set.h
plane_test.o: ./tests/plane_test.c set.h plane.h

OBJS3= set.o

set_test :$(OBJS3)
    $(CC)  $(CFLAGS) -o $@ $^

set.o:set.c set.h
set_test.o: ./tests/set_test.c set.h

OBJS4= plane.o set.o arrangement.o

arrangement_test :$(OBJS4)
    $(CC)  $(CFLAGS) -o $@ $^

arrangement.o: arrangement.c arrangement.h set.h plane.h
plane.o: plane.c plane.h
set.o: set.c set.h
arrangement_test.o: ./tests/arrangement_test.c arrangement.h set.h plane.h

但是例如我尝试使用

 >make space_test

它会返回许多看起来像这样的错误

  

space_test.c :(。text + 0x5fc):对'spaceCreate'的未定义引用

我所使用的所有不同功能。

任何人都可以帮我弄清楚为什么会这样吗?这些程序在eclipse上运行正常 非常感谢

0 个答案:

没有答案