Size: a a a

Rust — русскоговорящее сообществo

2020 October 28

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
for<'a> лишнее
источник

MZ

Max Zommer in Rust — русскоговорящее сообществo
да!  то, что надо, спасибо!

я почему-то был убеждён, что I::Item это всегда тип самого элемента, а не ссылка на него, но next возвращает ссылку :)
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Это зависит от коллекции, которая IntoIter. Для вектора ссылки не будет, для слайса будет
источник

MZ

Max Zommer in Rust — русскоговорящее сообществo
это да, я имел в виду, если передавать ссылку, на вектор или массив
источник

MZ

Max Zommer in Rust — русскоговорящее сообществo
я нашёл виновника. это сигнатура deref меня сбила с толку)
источник

MZ

Max Zommer in Rust — русскоговорящее сообществo
вот это поворот. TryFrom<T> поломали, оказывается
источник
2020 October 29

H

Heorhi in Rust — русскоговорящее сообществo
а оно работало когда-нибудь так как надо?
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Max Zommer
вот это поворот. TryFrom<T> поломали, оказывается
Скинул бы ишью
источник

MZ

Max Zommer in Rust — русскоговорящее сообществo
Andrey Vlasov
Скинул бы ишью
источник

DG

Danil Guskov in Rust — русскоговорящее сообществo
Всем привет.
Хотелось бы узнать как вы решаете проблему линковки сишных динамических библиотек в бинарниках?
Мы в свое время решали это через переменные окружения в build.rs. то есть при явном указании этой переменной в папку бинарника все работало.
Сейчас вот решил пересмотреть эту логику. Интересует, а можно ли сделать лучше?
источник

ph

pl 🦑 hk in Rust — русскоговорящее сообществo
pkg-config
источник

V

Vladimir in Rust — русскоговорящее сообществo
Самый универсальный способ который я видел - это:
1) переменные окружения если выставлены.
2) если не выставлены try pkg-config
3) если нет pkg-config билдить с сорцов.
источник

DG

Danil Guskov in Rust — русскоговорящее сообществo
Поясните про pkg-config. Допустим, мой бинарник тянет сторонние крейты, которые собираются из сишных исходников. Как мне их установить туда, где их найдет pkg-config ?
источник

YZ

Yerden Zhumabekov in Rust — русскоговорящее сообществo
Danil Guskov
Поясните про pkg-config. Допустим, мой бинарник тянет сторонние крейты, которые собираются из сишных исходников. Как мне их установить туда, где их найдет pkg-config ?
установить пакетным менеджером же
источник

YZ

Yerden Zhumabekov in Rust — русскоговорящее сообществo
обычно в  пакетах идут *.pc файлики
источник

DG

Danil Guskov in Rust — русскоговорящее сообществo
Ну cargo build сам собирает .so -файлы, которые непонятно где лежат в target
источник

V

Vladimir in Rust — русскоговорящее сообществo
Danil Guskov
Ну cargo build сам собирает .so -файлы, которые непонятно где лежат в target
Если крейты сторонние и билдят сошки в рандомные места, то не сильно понятно как их вообще линковать.

Вариант тут предложенный не билдить вообще SOшки, а брать из системного пакета.
источник

DG

Danil Guskov in Rust — русскоговорящее сообществo
Ну крейты тоже наши, внутренние, их тоже можно поменять. Вот в них мы как раз и ждем переменных окружения, если такие есть, билдим *.so куда скажут
источник

DG

Danil Guskov in Rust — русскоговорящее сообществo
Если их нет, то cargo сам их кладет туда, где может их найти
источник

V

Vladimir in Rust — русскоговорящее сообществo
Danil Guskov
Ну крейты тоже наши, внутренние, их тоже можно поменять. Вот в них мы как раз и ждем переменных окружения, если такие есть, билдим *.so куда скажут
Если ваши, то простора больше.
Можно например неявно передавать пути, в вышестоящие скрипты, через: https://doc.rust-lang.org/cargo/reference/build-scripts.html#the-links-manifest-key

Почему вообще статические либы не юзаете?
И я не сильно понимаю какая именно проблема у вас сейчас?
источник