В моем классе 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
вместо