0

そのため、この C モジュールでは 2 つの変更を加えました。関数に 1 つのパラメーターを追加し、構造体に 1 つのパラメーターを追加しました。

問題は、(継承したスクリプトから) cc を使用してコンパイルすると、変更箇所にエラー メッセージが表示されることです (翻訳が正確でない場合は申し訳ありません)。

エラー: 'function_that_I_added_the_argument' の引数が多すぎます
エラー: 構造体 'struct_I_added_the_element' には 'element_I_added' というメンバーがありません

ソース ファイルを何度かチェックしましたが (スクリプトが古いバージョンを呼び出していた場合のみ)、すべて問題ないようです。

今のところ、私は無知です。何か案が?

編集:人気のある請願ごとにmakeの一部を追加しました:Let be:

· ファイルへのパス。

· module1.c 私が変更した関数があるモジュール。

cc -c //folder/module1.c -Wall -DLINUX -I/ -I//otherFolder -I//include -o //folder/module1.o

ソースは関数と同じくらい簡単なので、含めていません。構造体の宣言は次のようになります。(構造体の場合) と function(params..., short param) 関数の場合。

4

1 に答える 1

0

2年後、自動応答してこれを解決済みとしてマークすることを思い出したので、自分の編集からコピーして貼り付けます。

解決済み:

最後に問題を見つけました...

a) プロジェクトは 2 つの構造体 (struct petecander と struct structPetecander) を宣言しており、コンパイラは、structPetecander の要素を持たない "struct structPetecander" について教えてくれました。もちろん、似たような名前の別の構造体だったので、それはありませんでした。

b) 「function_that_I_added_the_argument の引数が多すぎます」というメッセージが表示されました。Java でのプログラミングが多すぎて、C では .h で関数を宣言する必要があることを忘れていました。

2 つのエラー メッセージ (他のエラーの下に埋もれています) からヒントが得られました。/module.c:: error: conflict type for /headers.h:: error 以前の宣言の was here

隅っこでちょっと泣く時間かな。

于 2016-08-08T08:37:20.443 に答える