在安装 pintos 期间,我必须运行make
.
以下是 Makefile。
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
在一台计算机上它正确执行。(命令的输出如下)
gcc -Wall -W -c -o setitimer-helper.o setitimer-helper.c
gcc -lm setitimer-helper.o -o setitimer-helper
gcc -Wall -W -c -o squish-pty.o squish-pty.c
gcc -lm squish-pty.o -o squish-pty
gcc -Wall -W -c -o squish-unix.o squish-unix.c
gcc -lm squish-unix.o -o squish-unix
但在其他计算机上我收到以下错误
gcc -lm setitimer-helper.o -o setitimer-helper
setitimer-helper.o: In function `main':
setitimer-helper.c:(.text+0xc9): undefined reference to `floor'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'setitimer-helper' failed
make: *** [setitimer-helper] Error 1
如果查看两个make
命令的第一行输出
gcc -Wall -W -c -o setitimer-helper.o setitimer-helper.c
和
gcc -lm setitimer-helper.o -o setitimer-helper
它们不一样。
为什么make
对同一个 Makefile 执行不同的命令?我应该怎么做才能消除错误?