我需要一些帮助。 最近想学编程,遇到了一些问题,不过都解决了。 除了这个。 我知道已经回答了很多次,但我从未找到针对我的具体案例的解决方案。 我正在使用 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;
}
它给我这个错误:
Undefined symbols for architecture x86_64: "add(int, int)", referenced from: _main in main.o (maybe you meant: __Z3addiii) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
我不知道该怎么办。
我一直在学习这个教程:
http://www.learncpp.com/cpp-tutorial/17-forward-declarations/
Quiz下的第五个程序就是这个。
谢谢 柠檬水
最佳答案
您的前向声明是 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)
函数,这显然是不同的。
关于c++ - 体系结构 x86_64 Xcode Mac 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15012917/