我试图在pintos makefile上运行make,但是我一直得到对“floor”错误的未定义引用。生成文件如下。我正在用GCC4.6.1运行Ubuntu11.10。如有任何帮助,我们将不胜感激。
all: setitimer-helper squish-pty squish-unix
CC = gcc
CFLAGS = -Wall -W
LDFLAGS = -lm
setitimer-helper: setitimer-helper.o
squish-pty: squish-pty.o
squish-unix: squish-unix.o
clean:
rm -f *.o setitimer-helper squish-pty squish-unix
~
最佳答案
-lm
应该在LDLIBS
中,而不是LDFLAGS
中。
区别很重要,因为链接可执行文件的隐式规则是:
$(CC) $(LDFLAGS) n.o $(LOADLIBES) $(LDLIBS)
并且
ld
(由gcc调用)具有严格的从左到右依赖关系解析算法。