2014-04-28 55 views
0

已解決的更改,解決方案如下。已解決 - CC編譯沒有得到我在代碼


所以,我有我已經修改了兩件事情該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 

我沒有包含的源,因爲它是作爲函數和結構聲明可以像直接:短整型值; (用於結構體)和函數(params ...,簡稱param)。


解決:

終於找到了問題...

a)項目已經宣佈兩個結構(結構petecander和結構structPetecander),編譯器告訴我關於「結構structPetecander 「沒有structPetecander的元素。當然,它沒有它,因爲它是另一個結構與一個該死的類似的名字。

b)我得到了「function_that_I_added_the_argument的參數太多」。在Java中編程時間過長讓我忘記了C中的你必須在.h中聲明函數

兩條錯誤消息(埋在其他錯誤之下)給了我提示。很抱歉的壞翻譯: /module.c ::錯誤:衝突類型 /headers.h ::錯誤先前聲明的是這裏

時間去哭了一下一個角落,我猜。

+2

沒有「腳本」我們將是非常無知也。 –

+2

將相關部分的來源添加到帖子中。 –

+0

它看起來像頭文件尚未更新。如果你只運行預處理器(選項'-E'編譯器),你可以看看預處理文件。 –

回答

0

兩年後,我想起了自動回答我並標記這是解決,所以,複製粘貼從我自己編輯:

解決:

終於找到了問題...

a)該項目已經聲明瞭兩個結構體(struct petecander和struct structPetecander),並且編譯器告訴我關於沒有structPetecander元素的「struct structPetecander」。當然,它沒有它,因爲它是另一個結構與一個該死的類似的名字。

b)我得到了「function_that_I_added_the_argument的參數太多」。在Java中有太多的時間編程讓我忘了,在C你在.h聲明函數

兩個錯誤消息(下面埋的其他錯誤)給我的暗示。很抱歉的壞翻譯:/module.c ::錯誤:衝突類型/headers.h ::錯誤先前聲明的是這裏

時間去哭了一下一個角落,我猜。