因此,我有一个 c 模块,其中我修改了两件事:向函数添加了一个参数,向结构体添加了一个参数。
问题是,当使用 cc 进行编译时(从我继承的脚本),无论我的更改在哪里,我都会收到错误消息(抱歉,如果翻译不准确):
error: too many arguments for 'function_that_I_added_the_argument' error: struct 'struct_I_added_the_element' doesn't has a member called 'element_I_added'
我已经检查了几次源文件(如果脚本调用的是旧版本),但一切似乎都很好。
现在我一无所知。有什么想法吗?
编辑:根据受欢迎的请愿书添加了部分品牌: 设:
· 文件的路径。
· module1.c是我修改的函数所在的模块。
cc -c //folder/module1.c -Wall -DLINUX -I/ -I//otherFolder -I//include -o //folder/module1.o
我没有包含源代码,因为它就像函数一样简单,结构声明可以是:short int value; (对于结构)和函数(参数...,短参数)对于函数。
最佳答案
两年后,我记得自动回复我并将其标记为已解决,因此,从我自己的编辑中复制粘贴:
已解决:
终于找到问题了...
a) 该项目声明了两个结构体(struct petecander 和 struct structPetecander),编译器告诉我“struct structPetecander”没有 structPetecander 元素。当然它没有它,因为它是另一个具有极其相似名称的结构。
b) 我收到“function_that_I_added_the_argument 的参数太多”。太多次用 Java 编程让我忘记了在 C 中你必须在 .h 中声明函数
两条错误消息(隐藏在其他错误下面)给了我提示。抱歉翻译不好:/module.c::error:conflict type for/headers.h::error previous statements of is here
我想是时候去角落里哭一会儿了。
关于CC 编译没有得到我在代码中所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338686/