重新配置Makefile

时间:2015-05-31 23:02:24

标签: unix makefile

我对此有点新意,并且正在尝试建立一个相当大的项目。特别是,源代码正在执行行

gcc -Wall -W   -c -o setitimer-helper.o setitimer-helper.c
gcc -lm  setitimer-helper.o   -o setitimer-helper

这会产生链接器错误,因为根据此C: Undefined reference to floor -lm现在必须在目标文件之后。

我需要知道源代码中我可以找到的位置并重新排列。我想它在这里,但我不熟悉Unix。

CC = gcc
CFLAGS = -Wall -W
LDFLAGS = -lm

all: setitimer-helper squish-pty squish-unix

%.o: %.c
    $(CC) -c $< -o $@

%: %.c
    $(CC) $(CFLAGS) $< $(LDFLAGS) -o $@

clean:
    rm -f *.o setitimer-helper squish-pty squish-unix

我说错了吗?如果是这样,我该如何解决这个问题。如果没有,我应该在哪里看?

感谢。

1 个答案:

答案 0 :(得分:0)

更改规则以构建二进制文件以将$(LDFLAGS)放在最后。

%: %.c
    $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)

执行时,gcc命令应如下所示。

gcc -Wall -W setitimer-helper.c -o setitimer-helper -lm