0

我需要一些帮助。最近尝试学习一些编程,遇到了一些问题,但都已经解决了。除了这个。我知道它已经被回答了很多次,但我从来没有为我的具体案例找到解决方案。我正在使用 Xcode V. 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.o 中的 _main(也许您的意思是:__Z3addiii)ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败并退出代码 1(使用 -v 查看调用)

我不知道该怎么做。

我一直在关注本教程:

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

测验下的第五个程序就是这个。

谢谢柠檬汁

4

1 回答 1

1

您的前向声明是int add(int x, int y);,但您的定义是int add(int x, int y, int z)。第一个没有int z,但第二个有。他们需要 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 回答