我对C ++有点新意,但对于那些有更多经验的人来说,这应该非常简单,因为我已经盯着它看了一段时间。
我有一个类有另一个类实例作为ivar:
private:
Test test1;
然后我有test.hpp
:
class Test{
int x;
void tester();
public:
Test(); //constructor
};
test.cpp
:
Test::Test():x(5){
tester();
}
void Test::tester(){
std::cout<<x;
}
当我试图跑步时,我明白了:
Test::Test() referenced from <my original class with the test1 ivar> not found in architecture
现在我有很多其他C ++代码正常工作,所以“架构”,无论意味着什么,显然都支持语言(我正在使用Xcode)。
可能导致此链接器错误的原因是什么?
答案 0 :(得分:3)
确保编译包含测试类的C ++文件,并实际链接到最终的可执行文件。
在Xcode中,它意味着将C ++文件分配给目标。