我有一个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/项目文件/命令行/等)。
关于c++ - c++ 类的 objective-c 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259303/