在我的c ++类中,在以aosp编译的项目中,我具有此功能
MyClass::foo()
{
std::string str;
...
}
它将按我的预期进行编译和运行。但是,当我将str
设为静态时,如下所示:
MyClass::foo()
{
static std::string str;
...
}
尽管它可以编译并且链接看似正确,但是当我尝试在目标设备上运行可执行文件时会引发以下错误:
无法链接可执行文件“ ./executable”:无法找到符号“ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev”
注意:
-我在Linux机器上编译该程序
-Aosp版本9
-我确定目标架构已正确选择(arm64)
-此函数驻留在cpp文件中(不在标头中)
-我不能改用const char *
或android::String