GCC函数的多定义链接器错误

GCC函数的多定义链接器错误,c,gcc,makefile,C,Gcc,Makefile,我正在尝试创建一个makefile,并且能够编译所有的文件,但是在链接器步骤中失败了。项目中的每个函数都会出现一个错误,它说“函数名”的GCC多重定义,然后声称它是在完全相同的位置首次定义的。例如 project/src/provCreator.o: In function `ProcessArgs': /home/kevin/project/src/provCreator.c:380: multiple definition of `ProcessArgs' project/src/provC

我正在尝试创建一个makefile,并且能够编译所有的文件,但是在链接器步骤中失败了。项目中的每个函数都会出现一个错误,它说“函数名”的GCC多重定义,然后声称它是在完全相同的位置首次定义的。例如

project/src/provCreator.o: In function `ProcessArgs':
/home/kevin/project/src/provCreator.c:380: multiple definition of `ProcessArgs'
project/src/provCreator.o:/home/kevin/project/src/provCreator.c:380: first defined here
此错误的可能原因是什么?如何修复


感谢您的帮助。

您的makefile已两次列出了
project/src/provCreator.c
文件。可能,有不同的相对路径


根据您的描述,似乎所有c文件都列出了两次(ctrl-c/ctrl-v错误?

由于makefile中的列表重复,在编译同名函数或同一函数时,任何链接器都会抛出多个定义错误。编译后,链接器在链接时会混淆它必须链接的对象定义,因此会抛出错误


在您的情况下,请检查您的makefile,您可能已经列出了provCreator.c两次。

发布provCreator.c的第380行如何?;)makefile可能也很有用。听起来好像目标文件被引用了两次。(?!)和/或可能的一个
.c
文件包括another@MattMcNabb:这将以稍微不同的错误消息显示。