Cargo.toml OS Зависимость от ящика
У меня есть проект ржавчины, где я включаю зависимость mysql-crate, и я хочу, чтобы она была независимой.
Итак, я попробовал: Cargo.toml
[package]
name = "test"
version = "0.1.0"
authors = ["daMaex"]
[dependencies]
ws = "*"
clap = "*"
env_logger = "*"
[target.'cfg(any(unix, macos))'.dependencies.mysql]
version = "*"
default-features = false
features = ["socket"]
[target.'cfg(windows)'.dependencies.mysql]
version = "*"
default-features = false
features = ["pipe"]
[features]
default = []
ssl = []
Ошибка уже происходит с минимальным main: src / main.rs
fn main () {
}
Но сборка не удалась. В macos/unix он всегда хочет скомпилировать канал и получить неразрешенный импорт:
error[E0432]: unresolved import `std::os::windows::io::RawHandle`
--> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/named_pipe-0.2.2/src/lib.rs:38:5
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Could not find `windows` in `std::os`
и то же самое происходит в Windows для самого ящика mysql:
error[E0432]: unresolved import `std::os::unix`
--> C:\Users\user\.cargo\registry\src\github.com-1ecc6299db9ec823\mysql-7.1.2\src\io.rs:24:5
|
24 | use std::os::unix as unix;
| ^^^^^^^^^^^^^^^^^^^^^ no `unix` in `std::os`
Итак, мой вопрос, как мне справиться с зависимостью от ОС в этом случае?
1 ответ
Решение
Это выглядит как cargo
ошибка для меня. Одна связанная проблема - Невозможно объявить другую версию зависимостей во взаимоисключающих целях #3195
Редактировать: это больше не поддерживается функция, чем ошибка в соответствии с кодом.