- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
Description
Windows 7 x64, with rust msvc compiled at 0172e46 as well as rustc 1.15.0-nightly (ba872f2 2016-11-17)
It seems a bin/lib crate that depends on a lib crate that in turn depends on a proc macro crate doesn't compile because rustc complains that the proc macro crate was compiled as a dylib.
I have a proc macro crate foo, a lib crate bar that depends on foo, and a bin crate baz that depends on bar. bar compiles fine and generates libbar.rlib, but baz fails to compile with:
error[E0462]: found staticlib `foo` instead of rlib or dylib which `bar` depends on
  --> src\main.rs:1:1
  |
1 | extern crate bar;
  | ^^^^^^^^^^^^^^^^^
  |
  = help: please recompile that crate using --crate-type lib
  = note: crate `foo` path #1: C:\Stuff\Sources\baz\target\debug\deps\foo-7f298898a71a7d96.dll.lib
Repro: https://github.com/Arnavion/rust-37839 Run cargo build under baz/
On Linux, since only a .so is generated (no .lib equivalent), the error is different but the cause is presumably the same.
error[E0463]: can't find crate for `foo` which `bar` depends on
 --> src/main.rs:1:1
  |
1 | extern crate bar;
  | ^^^^^^^^^^^^^^^^^ can't find crate
Note again that this error is when compiling baz. There is no problem when compiling bar.