Ошибка связывания статического члена функции при разработке в AOSP - PullRequest
0 голосов
/ 10 апреля 2019

В моем классе c ++, в проекте, скомпилированном в aosp, у меня есть эта функция

MyClass::foo()
{
    std::string str;
    ...
}

, который компилируется и работает так, как я ожидал. Однако, когда я сделал str статичным, вот так:

MyClass::foo()
{
    static std::string str;
    ...
}

хотя он компилируется и ссылки кажутся правильными, он выдает следующую ошибку при попытке запустить исполняемый файл на целевом устройстве:

CANNOT LINK EXECUTABLE "./executable": не удается найти символ "_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev"

Примечания:
- Я компилирую эту программу на машине с Linux
- Aosp версия 9
- Я уверен, что целевая архитектура выбрана правильно (arm64)
- Эта функция находится в файле cpp (не в заголовке)
- Я не могу использовать const char * или android::String вместо

...