【发布时间】:2020-08-20 22:13:29
【问题描述】:
我正在编译我为一个项目编写的 C 程序。
目标
编译get_next_line.c和get_next_line_utils.c。
结构
我的文件夹中有 3 个文件,get_next_line.c、get_next_line_utils.c 和 get_next_line.h(不包括 Makefile)。不多也不少。
代码
NAME = get_next_line
SRCS = get_next_line.c get_next_line_utils.c
OBJS = $(SRCS:.c=.o)
CC = gcc
CFLAGS = -Wall -Wextra -Werror
LIB_CRT = ar rcs
all: $(NAME)
$(NAME) : $(OBJS)
@$(LIB_CRT) $(NAME) $(OBJS)
%.o: %.c $(INCLUDE)
@$(CC) -c $(CFLAGS) -o $@ $<
clean:
@rm -f $(OBJS) a.out
fclean: clean
@rm -f $(NAME)
re : fclean all
错误信息
linker input file unused because linking not done。我多次收到此错误。
当我运行 make 时,我继续运行这个错误。我遵循了另一个项目的另一个 Makefile,但无济于事。我还阅读了 this 文章和 that 一篇文章,但它们与我的问题无关。
任何意见表示赞赏。
【问题讨论】:
-
我下载了您的 makefile 并使用
touch创建了空的.c文件。我得到 no 错误。但是,我注意到您正在尝试创建一个静态库(通常以.a结尾),但您的目标是没有.a后缀的文件。file命令表示输出 is 是ar存档,但是 !?!?删除@前缀可能会有所帮助,这样您就可以看到正在执行的命令。