【问题标题】:CC Compile not getting the changes I've made in the codeCC 编译没有得到我在代码中所做的更改
【发布时间】:2014-06-13 20:35:06
【问题描述】:

所以,我有这个 c 模块,其中我修改了两件事:向函数添加了一个参数,向结构添加了一个参数。

问题是,当使用 cc(从我继承的脚本)编译时,无论我的更改在哪里,我都会收到错误消息(抱歉,如果翻译不准确):

错误:“function_that_I_added_the_argument”的参数太多 错误:结构“struct_I_added_the_element”没有名为“element_I_added”的成员

我已经检查了几次源文件(就像脚本调用的是旧版本一样),但一切似乎都很好。

现在我一无所知。有什么想法吗?

编辑:为每个受欢迎的请愿添加了部分制作: 让我们成为:

· 文件的路径。

·module1.c 我修改的函数所在的模块。

cc -c //文件夹/module1.c -Wall -DLINUX -I/ -I//otherFolder -I//include -o //文件夹/module1.o

我没有包含源代码,因为它像函数一样简单,结构声明可以是:short int value; (对于结构)和函数(参数...,短参数)对于函数。

【问题讨论】:

  • 如果没有“脚本”,我们也会变得毫无头绪。
  • 将来源的相关部分添加到帖子中。
  • 头文件好像没有更新。如果您只运行预处理器(编译器的选项-E),您可以查看预处理文件。
  • 如果你解决了一个问题,不要编辑你的帖子说“解决了”。发布答案,然后接受。
  • @MattMcNabb:对不起,但由于我是新用户,我无法回答(还超过 4 小时)我自己的帖子,所以我决定编辑名称以防止引诱人们进入一个已经解决的问题

标签: c compilation compiler-errors cc


【解决方案1】:

两年后,我记得自动回复我并将其标记为已解决,所以,从我自己的编辑中复制粘贴:

已解决:

终于找到问题了……

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 declaration of is here

我想是时候去角落里哭一会儿了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多