Когда я пытаюсь запустить пример from the serde repository:проекта с serde не может скомпилировать
#![feature(proc_macro)]
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
#[derive(Serialize, Deserialize, Debug)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let point = Point { x: 1, y: 2 };
// Convert the Point to a JSON string.
let serialized = serde_json::to_string(&point).unwrap();
// Prints serialized = {"x":1,"y":2}
println!("serialized = {}", serialized);
// Convert the JSON string back to a Point.
let deserialized: Point = serde_json::from_str(&serialized).unwrap();
// Prints deserialized = Point { x: 1, y: 2 }
println!("deserialized = {:?}", deserialized);
}
Я получаю сообщение об ошибке:
error: failed to run
rustc
to learn about target-specific informationCaused by: process didn't exit successfully:
rustc - --crate-name _ --print=file-names --crate-type bin --crate-type proc-macro --crate-type rlib --target x86_64-unknown-linux-gnu
(exit code: 101) --- stderr error: unknown crate type:proc-macro
Моя Rust версия 1.13.0 и мой Cargo.toml имеет эти Зависимости:
[dependencies]
serde = "*"
serde_derive = "*"
Должен ли я использовать другие зависимости или дополнительную конфигурацию?
Вам необходимо использовать ночной и недавний, и вы не должны использовать зависимостей '' * '', а указывать версии. Если вы хотите использовать stable, вам нужно использовать описанное здесь решение: https://serde.rs/codegen-stable.html –
@ker вы имеете в виду rustc ночной? какую версию serde и serde_derive вы могли бы мне порекомендовать? – AntonioRomero
Да, я имею в виду rustc ночной. К сожалению, эта функция будет нестабильной для другого цикла выпуска или двух, поэтому от 1,5 до 3 месяцев, пока вы не сможете использовать его в стабильном режиме. Предлагаемые версии - это те, которые вы можете найти на https://serde.rs или просто самые последние на crates.io –