Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C ';链接器&x27;输入未使用的[-Wunused命令行参数]_C_Makefile_Clang - Fatal编程技术网

C ';链接器&x27;输入未使用的[-Wunused命令行参数]

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=-

我在运行makefile时遇到了一个问题。问题是在运行makefile之后,我遇到了错误

“链接器”输入未使用[-Wunused命令行参数]

错误的屏幕截图:

此外,当我使用带有文件名的make命令时,这些命令工作得非常好,没有任何问题,并显示消息file.o是最新的,但是在venting.o和venting处会提示错误

守则:

#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
——但这不太可能是一个受支持的用例,并且会在启动代码和构造函数解析方面遇到问题。