我有一个被引用的C ++类,然后我将声明一个变量。我在Objective-C中声明:

cObject obj = cObject();
obj.myFunct("test");


但似乎存在链接器错误。它说:

Undefined symbols for architecture armv7:
  "cObject::cObject()", referenced from:
    -[...] in xxx.o
    ___cxxx_global_var_init in xxx.o
"cObject::myFunct(std::__1:basic_string<char,str::__1::char_traits<char>, str::__1::allocator<char> >)", referenced from:
    -[///] in xxx.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1(use -v to see invocation)


编辑:注释中解决的第一个错误:不要定义第一部分的空构造函数。第二部分涉及调用obj.myFunct(“ test”);

最佳答案

您需要在某处定义类的默认构造函数和myFunct函数:

cObject::cObject()
{
    ...
}

return_type cObject::myFunct(std::string arg1)
{
    ...
}


如果已定义它们,请确保您链接了在其中定义了它们的目标文件(即,将源文件添加到Makefile /项目文件/命令行/等文件中)。

09-13 14:08