这是我的Makefile:
CC=gcc
CFLAGS=-Wall -std=gnu99
OBJ1=mknlrescs.o collisionsys.o csheader.o utils.o labels.o csdata.o
OBJ2=mknrescs.o utils.o
all: mknlrescs mknrescs
mknlrescs: $(OBJ1)
$(CC) $(CFLAGS) -o $@ $<
mknrescs: $(OBJ2)
$(CC) $(CFLAGS) -o $@ $<
%.o: %.c %.h
$(CC) $(CFLAGS) -c $<当我键入make mknlrescs时,我得到以下内容:
$ make mknlrescs
gcc -Wall -std=gnu99 -c -o mknlrescs.o mknlrescs.c
gcc -Wall -std=gnu99 -c collisionsys.c
gcc -Wall -std=gnu99 -c csheader.c
gcc -Wall -std=gnu99 -c utils.c
gcc -Wall -std=gnu99 -c labels.c
gcc -Wall -std=gnu99 -c csdata.c
gcc -Wall -std=gnu99 -o mknlrescs mknlrescs.o -lm
mknlrescs.o: In function `main':
mknlrescs.c:(.text+0x4b): undefined reference to...还有一堆其他的“未定义的引用...”错误。
其余的对象没有被链接。请注意,它只链接了第一个对象文件。我怎样才能纠正这个错误呢?
发布于 2014-03-14 02:57:22
自动变量$<代表定义配方的规则的第一个先决条件。
如果您想使用所有先决条件,请改用$^。
有关完整列表,请参阅Automatic Variables。
https://stackoverflow.com/questions/22388266
复制相似问题