C Makefile最初的结构方式,而且由于我是makefiles新手,我不知道如何进行正确的更改。使用LDLIBS而不是LDFLAGS应该可以解决这个问题,而不必使用隐式规则显式列出所有目标的配方@约翰·马歇尔展示了如何做到这一点。@RudyMatela,你

C Makefile最初的结构方式,而且由于我是makefiles新手,我不知道如何进行正确的更改。使用LDLIBS而不是LDFLAGS应该可以解决这个问题,而不必使用隐式规则显式列出所有目标的配方@约翰·马歇尔展示了如何做到这一点。@RudyMatela,你,c,gcc,makefile,C,Gcc,Makefile,Makefile最初的结构方式,而且由于我是makefiles新手,我不知道如何进行正确的更改。使用LDLIBS而不是LDFLAGS应该可以解决这个问题,而不必使用隐式规则显式列出所有目标的配方@约翰·马歇尔展示了如何做到这一点。@RudyMatela,你是对的,但我只是指出了错误的原因,我不明白你的意思。makefile是作为tarball的一部分提供给我的。你能以原始makefile的形式向我展示一下吗?@Varagrawal不是$LD$LDFLAGS myprog.o-o myprog,而


Makefile最初的结构方式,而且由于我是makefiles新手,我不知道如何进行正确的更改。使用LDLIBS而不是LDFLAGS应该可以解决这个问题,而不必使用隐式规则显式列出所有目标的配方@约翰·马歇尔展示了如何做到这一点。@RudyMatela,你是对的,但我只是指出了错误的原因,我不明白你的意思。makefile是作为tarball的一部分提供给我的。你能以原始makefile的形式向我展示一下吗?@Varagrawal不是$LD$LDFLAGS myprog.o-o myprog,而是写$LD myprog.o$LDFLAGS-o myprog,这样库就可以跟踪要链接的对象文件列表。但这不是makefile最初的结构方式,因为我是makefiles的新手,我不知道如何进行正确的更改。使用LDLIBS而不是LDFLAGS应该可以解决问题,而不必使用隐式规则显式列出所有目标的配方@约翰·马歇尔展示了如何做到这一点。@RudyMatela,你是对的,但我只是指出了错误的原因
all: setitimer-helper squish-pty squish-unix
# 2207718881418

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 -lm  setitimer-helper.o   -o setitimer-helper
setitimer-helper.o: In function `main':
setitimer-helper.c:(.text+0xbb): undefined reference to `floor'
collect2: ld returned 1 exit status
make: *** [setitimer-helper] Error 1
CC = gcc
CFLAGS = -Wall -W
LDFLAGS = -lm

myprog: myprog.o more_code.o
       ${CC} ${CFLAGS} myprog.o more_code.o ${LDFLAGS} -o myprog

myprog.o: myprog.c
       ${CC} ${CFLAGS} -c myprog.c

more_code.o: more_code.c
       ${CC} ${CFLAGS} -c more_code.c

clean:
       \rm myprog.o more_code.o myprog 
CC = gcc
CFLAGS = -Wall -W
LDFLAGS = -lm
OBJECTS = setitimer-helper.o squish-pty.o squish-unix.o

all: setitimer-helper

setitimer-helper: $(OBJECTS)
       ${CC} ${CFLAGS} $(OBJECTS) ${LDFLAGS} -o setitimer-helper

setitimer-helper.o: setitimer-helper.c
       ${CC} ${CFLAGS} -c setitimer-helper.c

squish-pty.o: squish-pty.c
       ${CC} ${CFLAGS} -c squish-pty.c

squish-unix.o: squish-unix.c
       ${CC} ${CFLAGS} -c squish-unix.c
CC = gcc
# etc
setitimer-helper: setitimer-helper.o
# etc
$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
$(CC) $(LDFLAGS) setitimer-helper.o $(LDLIBS) -o setitimer-helper
LDLIBS = -lm