有人可以解释一下这个错误是什么意思吗?这实际上是相同的结构。 它是否无法以某种方式推断R或F并以这种方式报告?
src/demo.rs:113:51: 113:65 error: mismatched types:
expected `&mut gfx_debug_draw::debug_renderer::DebugRenderer<_, _>`,
found `&mut gfx_debug_draw::debug_renderer::DebugRenderer<R, F>`
(expected struct `gfx_debug_draw::debug_renderer::DebugRenderer`,
found a different struct `gfx_debug_draw::debug_renderer::DebugRenderer`) [E0308]
src/demo.rs:113 self.skeleton.draw(&global_poses, debug_renderer, settings.draw_labels);
^~~~~~~~~~~~~~
违规行在这里: https://github.com/PistonDevelopers/skeletal_animation_demo/blob/master/src/demo.rs#L113 debug_renderer在这里定义: https://github.com/PistonDevelopers/skeletal_animation_demo/blob/master/src/demo.rs#L97 这些类型来自impl: https://github.com/PistonDevelopers/skeletal_animation_demo/blob/master/src/demo.rs#L43
功能本身在这里: https://github.com/PistonDevelopers/skeletal_animation/blob/master/src/skeleton.rs#L66-L70
Rust 1.5和1.3,同样的错误。
答案 0 :(得分:4)
看起来您的项目使用了两个不同版本的gfx_debug_draw
(因此found a different struct gfx_debug_draw::debug_renderer::DebugRenderer
。它是相同的结构,但来自同一个软件包的不同版本。),可能是因为您指定了一个版本Cargo.toml
和您的一个依赖项指定了不同的版本。您应该检查Cargo.lock
以查看是否属实,然后确保在任何地方使用相同版本的包。