架构的未定义符号x86_64 Xcode Mac

时间:2013-02-21 21:50:56

标签: c++ undefined symbols

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

我不知道该怎么做。

我一直在关注本教程:

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

测验下的第五个计划是这个。

由于 Lemonizer

1 个答案:

答案 0 :(得分: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)函数,显然是不同的。