0

助けが必要です。最近、私はいくつかのプログラミングを学ぼうとしましたが、いくつかの問題がありましたが、それらはすべて解決されました。これを除いて。私はそれが何度も答えられたことを知っていますが、私は私の特定のケースの解決策を見つけたことがありません。XcodeVを使用しています。4.5.2プログラムは次のとおりです。

int add(int x, int y);

int main()

    using namespace std;
    cout << "3 + 4 + 5 = " << add(3, 4) << endl;
    return 0;
}

int add(int x, int y, int z)

    return x + y + z;
}

それは私にこのエラーを与えます:

アーキテクチャx86_64の未定義のシンボル: "add(int、int)"、参照元:_main in main.o(おそらく:__ Z3addiii)ld:アーキテクチャx86_64のシンボルが見つかりませんclang:エラー:リンカーコマンドが終了時に失敗しましたコード1(呼び出しを確認するには-vを使用)

どうしたらいいのかわからない。

私はこのチュートリアルに従っています:

http://www.learncpp.com/cpp-tutorial/17-forward-declarations/

クイズの5番目のプログラムはこれです。

Lemonizerに感謝します

4

1 に答える 1

1

前方宣言はですint add(int x, int y);が、定義はint add(int x, int y, int z)です。最初のものにはありませんint zが、2番目のものにはあります。それらは100%一致する必要があります。定義はおそらく次のようになります。

int add(int x, int y) {
    return x + y;
}

そのリンカエラーは、「関数がわからない」ということを示していますadd(int, int)。これは、どの種類のadd(int, int)関数も定義されていないため、適切です。add(int, int, int)明らかに異なる機能だけがあります。

于 2013-02-21T21:53:35.383 に答える