Добавление нескольких статических библиотек Rust в приложение iOS

У меня есть две библиотеки (с C-совместимым интерфейсом), написанные на Rust, которые я пытаюсь интегрировать в приложение для iOS.

При интеграции двух файлов.a в одном проекте я получаю ошибки, потому что символы из стандартной библиотеки Rust теперь присутствуют несколько раз:

duplicate symbol _rust_eh_personality in:
    /Users/x/Development/ios-client/Y/Rust/lib1_ffi.a(lib1_ffi.0.o)
    /Users/x/Development/ios-client/Y/Rust/lib2_ffi.a(lib2_ffi.0.o)
...

Как это можно решить? Могут ли символы Rust быть извлечены в отдельную библиотеку? Или символы могут быть пространством имен?

1 ответ

На момент написания этой статьи распространенная теория состояла в том, что эта проблема возникает, когда включена оптимизация Link-Time (LTO), и вызвана ошибкой в ​​статических библиотеках, создаваемых rustc (ссылка).

В качестве временной меры было предложено не включать LTO до тех пор, пока эта проблема не будет решена.

Другие вопросы по тегам