0

我正在尝试通过直接从Diesel GitHub repo复制来遵循Diesel 入门指南,但我遇到了一些我无法修复的编译错误:examples/getting_started_step_3/

cargo build 
   Compiling diesel_demo_step_3 v0.1.0 (file:///home/stamm/code/rustsome/pkiexpress)
error: macro undefined: 'options!'
 --> src/schema.rs:1:1
  |
1 | infer_schema!("dotenv:DATABASE_URL");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in a macro outside of the current crate

error: macro undefined: 'table_name!'
  --> src/models.rs:12:1
   |
12 | #[table_name="posts"]
   | ^^^^^^^^^^^^^^^^^^^^^

这是我的.env

DATABASE_URL=postgres://postgres:password@localhost/pkiexpress

我正在使用 Rust 1.16.0-nightly (df8debf6d 2017-01-25) 和 Diesel 0.9.0。

4

1 回答 1

1

您收到的编译错误听起来像是由当前 nightly 的问题引起的。您可能可以通过#![feature(proc_macro)]从代码中删除来修复它(Diesel 使用的功能不再需要它)。对于您链接的示例,这是在17 days ago 的提交中完成的。

在使用夜间编译器的示例时,存在很高的损坏风险。对于流行的 crate,示例更新得非常快,因此您应该确保您的编译器和您尝试运行的示例都是最新的。幸运的是,随着 1.15 的发布(不到一周,2017-02-02),Diesel 将与稳定的编译器一起工作,损坏的风险要小得多。

如果上述方法不起作用,您可以使用较旧的 nightly(例如 c07a6ae77 2017-01-17 应该可以),只需等待问题修复,或等到 1.15 发布并使用稳定版。

于 2017-01-29T01:54:22.407 回答