我正在尝试在PintOS makefile上运行make,但我一直得到未定义的引用`floor'错误。 makefile在下面。我用gcc 4.6.1运行Ubuntu 11.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
〜
答案 0 :(得分:8)
-lm
应该在LDLIBS
,而不是LDFLAGS
。
区别很重要,因为链接可执行文件的隐式规则是:
$(CC) $(LDFLAGS) n.o $(LOADLIBES) $(LDLIBS)
和ld
(由GCC调用)具有严格的从左到右的依赖性解析算法。