Где общие и статические библиотеки стандартной библиотеки Rust?

Я пытаюсь скомпилировать свой проект Rust с динамической компоновкой, чтобы уменьшить размер и предоставить файлы .so (или .dll в Windows) с приложением, как это делает Qt для Android. Я прочитал Почему исполняемые файлы Rust такие огромные? и скомпилировал с

cargo rustc  -- -C prefer-dynamic

Когда я запускаю свою программу, я получаю эту ошибку:

 % target/debug/t_pro 
target/debug/t_pro: error while loading shared libraries: libstd-a021829e87e39dcf.so: cannot open shared object file: No such file or directory

person    schedule 22.11.2018    source источник
comment
Пожалуйста, предоставьте дополнительную информацию: какую программу вы пытаетесь собрать? Какая версия компилятора, какой набор инструментов и какая хост-ОС?   -  person E_net4 the curator    schedule 22.11.2018
comment
Большинство операционных систем поставляются с инструментами для поиска на жестком диске файлов с определенным именем. Вы пробовали один из них?   -  person Shepmaster    schedule 23.11.2018


Ответы (2)


Библиотеки устанавливаются везде, где вы решили установить Rust. Я использую rustup в macOS, поэтому они у меня установлены в ~/.rustup/toolchains/*whatever*/lib/.

Используйте инструменты вашей операционной системы для поиска файлов с определенным именем.

Смотрите также:

person Shepmaster    schedule 22.11.2018

Я получил ответ на Reddit.

rustc --print=sysroot

В моем случае файлы .so находятся в /home/username/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib, а .rlib — в /home/username/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib.

person 尤金寶 漢子    schedule 23.11.2018
comment
export LD_LIBRARY_PATH+=:$(rustc --print=sysroot)/lib отлично сработало для меня - person Tinmarino; 17.03.2021