C ';链接器&x27;输入未使用的[-Wunused命令行参数]
我在运行makefile时遇到了一个问题。问题是在运行makefile之后,我遇到了错误 “链接器”输入未使用[-Wunused命令行参数] 错误的屏幕截图: 此外,当我使用带有文件名的make命令时,这些命令工作得非常好,没有任何问题,并显示消息file.o是最新的,但是在venting.o和venting处会提示错误 守则:C ';链接器&x27;输入未使用的[-Wunused命令行参数],c,makefile,clang,C,Makefile,Clang,我在运行makefile时遇到了一个问题。问题是在运行makefile之后,我遇到了错误 “链接器”输入未使用[-Wunused命令行参数] 错误的屏幕截图: 此外,当我使用带有文件名的make命令时,这些命令工作得非常好,没有任何问题,并显示消息file.o是最新的,但是在venting.o和venting处会提示错误 守则: #declaring .PHONY rules .PHONY: clean #variable defined for -Wall -Wextra CFLAGS=-
#declaring .PHONY rules
.PHONY: clean
#variable defined for -Wall -Wextra
CFLAGS=-Wall -Wextra
#rule to build the executable program venting from object file
venting: venting.o
gcc $(CFLAGS) -o venting venting.o
#list objectable file is created with the following rules.
list.o: list.c list.h
gcc $(CFLAGS) -c list.c
#list-adders objectable file is created with the following rules.
list-adders.o: list-adders.c list.h
gcc $(CFLAGS) -c list-adders.c
#vents objectable file is created with the following rules.
vents.o: vents.c list.h vents.h
gcc $(CFLAGS) -c vents.c
#venting.o objectable file is created with the following rules.
venting.o: list.o list-adders.o vents.o
gcc $(CFLAGS) -c list.o list-adders.o vents.o
#rule to remove all build targets and rebuild project from the beginning.
clean:
rm -f *.o venting
即获取对象文件并将其传递给gcc-c
(即仅编译,无链接)。由于未进行链接,因此此处未处理任何只传递给链接器的输入文件,因此前端驱动程序假定这些文件列错了
即获取对象文件并将其传递给
gcc-c
(即仅编译,无链接)。由于未进行链接,因此此处未处理任何只传递给链接器的输入文件,因此前端驱动程序假定这些文件列错了。提问时,请提供您得到的确切错误输出,而不是解释说明。另外,请显示make调用的命令,该命令导致错误
从一堆其他.o
文件中构造一个“大的”.o
文件是不可能的。这不是编译器可以做到的
因此,这条规则:
venting.o: list.o list-adders.o vents.o
gcc $(CFLAGS) -c list.o list-adders.o vents.o
无法工作。提问时,请提供您得到的准确错误输出,而不是解释说明。另外,请显示make调用的命令,该命令导致错误 从一堆其他
.o
文件中构造一个“大的”.o
文件是不可能的。这不是编译器可以做到的
因此,这条规则:
venting.o: list.o list-adders.o vents.o
gcc $(CFLAGS) -c list.o list-adders.o vents.o
无法工作。
ld-r
可以做到这一点,因此理论上你可以在这里使用gcc-Wl,-r-o venting.o list.o list adders.o vents.o
,但这不太可能是一个受支持的用例,并且会在启动代码和构造函数解析方面遇到问题。ld-r
可以做到这一点,所以理论上你可以使用gcc-Wl,-这里是r-o venting.o list.o list adders.o vents.o
——但这不太可能是一个受支持的用例,并且会在启动代码和构造函数解析方面遇到问题。