在AOSP中开发时链接静态函数成员时出错

时间:2019-04-10 12:21:10

标签: android c++ android-source

在我的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

0 个答案:

没有答案