Проблема с линковкой в Rust

Модератор: Модераторы разделов

Ответить
BratSinot
Сообщения: 812
ОС: Slackware64

Проблема с линковкой в Rust

Сообщение BratSinot »

Доброго времени суток!

В общем, весь день бился, бился над проблемой, так ничего путного и не нашел.
Год назад был определенный код на Rust, который собирался через Cargo. Сейчас при компиляции вылазит ошибка:

Код:

# cargo build Updating git repository `https://github.com/alexcrichton/flate2-rs.git` Updating git repository `https://github.com/BurntSushi/byteorder.git` Updating git repository `https://github.com/PistonDevelopers/image.git` Updating registry `https://github.com/rust-lang/crates.io-index` Adding bitflags v0.7.0 Adding color_quant v1.0.0 Adding deque v0.3.1 Adding flate2 v0.2.14 Adding gif v0.9.0 Adding inflate v0.1.1 Adding jpeg-decoder v0.1.6 Adding lzw v0.10.0 Adding miniz-sys v0.1.7 Adding num_cpus v0.2.13 Adding png v0.5.2 Adding rayon v0.4.0 Adding scoped_threadpool v0.1.7 error: native library `miniz` is being linked to by more than one package, and can only be linked to by one package miniz-sys v0.1.7 miniz-sys v0.1.7 (https://github.com/alexcrichton/flate2-rs.git#633e94fb)


Cargo.toml прост до нельзя:

Код: Выделить всё

[package]
name = "miecore"
version = "0.2.0"
authors = ["BratSinot <bratsinot@gmail.com>"]

[dependencies]
flate2 = { git = "https://github.com/alexcrichton/flate2-rs.git" }
byteorder = { git = "https://github.com/BurntSushi/byteorder.git" }
image = { git = "https://github.com/PistonDevelopers/image.git" }

Из этих библиотек miniz-sys использует только flate2 и image (который тоже использует flate2).

Раньше все прекрасно работало, а теперь разработчики решили опять сделать какую-то "killer feature" и снова все поломали. Пока в flate2 включил режим использования zlib.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Проблема с линковкой в Rust

Сообщение serzh-z »

Стоит попробовать убрать зависимость miecore от flate2.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Проблема с линковкой в Rust

Сообщение BratSinot »

serzh-z писал(а):
04.08.2016 00:31
Стоит попробовать убрать зависимость miecore от flate2.

Тогда при сборки библиотеки он начинает ругаться на отсуствие flate2:

Код:

root@lBratSinot:/home/hacker/PRJ/NBTEditor/mapitemeditor-code/Rust/miecore# cargo update && cargo build Updating git repository `https://github.com/BurntSushi/byteorder.git` Updating git repository `https://github.com/PistonDevelopers/image.git` Updating registry `https://github.com/rust-lang/crates.io-index` Removing flate2 v0.2.14 (https://github.com/alexcrichton/flate2-rs.git#633e94fb) Removing libz-sys v1.0.5 Removing pkg-config v0.3.8 Downloading glob v0.2.11 Downloading png v0.5.2 Downloading gif v0.9.0 Downloading jpeg-decoder v0.1.6 Downloading enum_primitive v0.1.0 Downloading num-traits v0.1.34 Downloading byteorder v0.5.3 Downloading num-rational v0.1.32 Downloading num-iter v0.1.32 Downloading scoped_threadpool v0.1.7 Downloading bitflags v0.7.0 Downloading flate2 v0.2.14 Downloading inflate v0.1.1 Downloading libc v0.2.14 Downloading miniz-sys v0.1.7 Downloading gcc v0.3.32 Downloading num-integer v0.1.32 Downloading lzw v0.10.0 Downloading color_quant v1.0.0 Downloading rayon v0.4.0 Downloading rand v0.3.14 Downloading num_cpus v0.2.13 Downloading deque v0.3.1 Downloading num v0.1.34 Downloading rustc-serialize v0.3.19 Downloading num-bigint v0.1.33 Compiling gcc v0.3.32 Compiling color_quant v1.0.0 Compiling bitflags v0.7.0 Compiling inflate v0.1.1 Compiling glob v0.2.11 Compiling lzw v0.10.0 Compiling libc v0.2.14 Compiling rustc-serialize v0.3.19 Compiling gif v0.9.0 Compiling byteorder v0.5.3 (https://github.com/BurntSushi/byteorder.git#d0df2d0d) Compiling byteorder v0.5.3 Compiling miniz-sys v0.1.7 Compiling num_cpus v0.2.13 Compiling scoped_threadpool v0.1.7 Compiling num-traits v0.1.34 Compiling rand v0.3.14 Compiling num-integer v0.1.32 Compiling flate2 v0.2.14 Compiling num-iter v0.1.32 Compiling num v0.1.34 Compiling enum_primitive v0.1.0 Compiling png v0.5.2 Compiling deque v0.3.1 Compiling rayon v0.4.0 Compiling num-bigint v0.1.33 Compiling jpeg-decoder v0.1.6 Compiling num-rational v0.1.32 Compiling image v0.10.1 (https://github.com/PistonDevelopers/image.git#d52a994e) Compiling miecore v0.2.0 (file:///home/hacker/PRJ/NBTEditor/mapitemeditor-code/Rust/miecore) src/lib.rs:20:1: 20:21 error: can't find crate for `flate2` [E0463] src/lib.rs:20 extern crate flate2; ^~~~~~~~~~~~~~~~~~~~ error: aborting due to previous error error: Could not compile `miecore`. To learn more, run the command again with --verbose.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Проблема с линковкой в Rust

Сообщение serzh-z »

BratSinot
Ну тогда дело за "--verbose", с изначальным вариантом... =) Вообще, на тему непонятного сообщения о конфликте версий одной и той же библиотеки есть багрепорт, но, как понимаю, он не исправлен.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Проблема с линковкой в Rust

Сообщение BratSinot »

Ничего не понимаю. Запускал build / update в разной последовательности, удаляя lock файлы и в какой-то момент стало все собираться. Причем это на втором компьютере, на первом делал теже самые действия.

Ан нет, недосмотрел. Это я опять zlib-режим включил.
Спасибо сказали:
Ответить