我有一个被引用的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 /项目文件/命令行/等文件中)。