火箭无法编译

时间:2019-09-06 19:06:46

标签: rust rust-rocket

我正在尝试通过一个非常小的示例来试用Rocket Web框架。但是,Rocket(0.4.2)不会与夜间的rustc一起编译。 (使用Ubuntu Linux。)

我正在使用每晚rustc进行构建(2019-09-05)。只是做了一次鲁up尝试最新的rustc。我正在使用以下版本:

  • nightly-x86_64-unknown-linux-gnu('/ work / cd / rusty / cdbackend'的目录覆盖)
  • rustc 1.39.0-每晚(618768492 2019-09-05)
  • 火箭0.4.2

我收到以下错误:

error: /work/cd/rusty/cdbackend/target/debug/deps/librocket_codegen-33108ba93258cfa7.so: undefined symbol: __rustc_plugin_registrar_a555dc3e7aee69391ac43d72ccd8fe72__
 --> src/main.rs:2:11
  |
2 | #![plugin(rocket_codegen)]
  |           ^^^^^^^^^^^^^^

error: aborting due to previous error

关于将要编译哪个版本的任何想法?

2 个答案:

答案 0 :(得分:1)

首先感谢@Gardener的上述回复。它促使我查看了Rocket的最新示例。

版本不是问题,但是宏已更改。我将其记录在这里以帮助他人。

旧代码(报告错误):

#![plugin(rocket_codegen)]

extern crate rocket;

被新的宏替换:

#[macro_use] extern crate rocket;

答案 1 :(得分:0)

如果您提供更多信息,将会有所帮助。火箭在每晚-2019-09-05编译良好-刚刚确认。

git clone https://github.com/SergioBenitez/Rocket
cd Rocket
git checkout v0.4.2
cd examples/hello_world
cargo run

这适用于最新的火箭0.4.2和最新的每晚。

您似乎正在尝试使用rocket_codegen。在添加rocket_codegen之前,请确认以上内容是否有效。

上述方法一旦起作用,您可能需要尝试以下方法:

echo 'rocket_codegen = "0.4.2"' >> Cargo.toml
cargo build