Unix 重新配置生成文件
我对这个有点陌生,正在尝试建立一个相当大的项目。特别是,源代码正在执行这些行Unix 重新配置生成文件,unix,makefile,Unix,Makefile,我对这个有点陌生,正在尝试建立一个相当大的项目。特别是,源代码正在执行这些行 gcc -Wall -W -c -o setitimer-helper.o setitimer-helper.c gcc -lm setitimer-helper.o -o setitimer-helper 这将创建链接器错误,因为根据 -lm现在必须位于对象文件之后 我需要知道在源代码中我可以在哪里找到并重新排列它。我想它在这里,但我不熟悉Unix CC = gcc CFLAGS = -Wall -W L
gcc -Wall -W -c -o setitimer-helper.o setitimer-helper.c
gcc -lm setitimer-helper.o -o setitimer-helper
这将创建链接器错误,因为根据
-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
CC=gcc
CFLAGS=-Wall-W
LDFLAGS=-lm
all:setitimer helper squish pty squish unix
%.o:%.c
$(CC)-c$<-o$@
%:%c
$(CC)$(CFLAGS)$<$(LDFLAGS)-o$@
清洁:
rm-f*.o setitimer helper squish pty squish unix
我说得对吗?如果是,我如何解决这个问题。如果没有,我应该去哪里看
谢谢 将构建二进制文件的规则更改为将
$(LDFLAGS)
放在末尾
%: %.c
$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
试试`$(CC)$(CFLAGS)$<-o$@$(LDFLAGS)
。您的
%.o:%.c`规则将永远不会被使用,因为make可以使用其他规则从c文件创建二进制文件。您应该使构建看起来像<代码>gcc setitimer helper.c-o setitimer helper-lm。这是我的第一个猜测。我要试一试,谢谢。@PaulRooney好的,我手动运行该命令以确认它有效,然后在这里发布它是预期目标。此外,您可以删除这两个规则,并允许默认规则处理它。
gcc -Wall -W setitimer-helper.c -o setitimer-helper -lm