Skip to content

cargo package fails when binary crate depends on library crate #1404

@dwrensha

Description

@dwrensha

I have a simple project with a library crate and an executable crate that depends on the library crate:

#Cargo.toml [package] name = "borked" version = "0.0.1" [lib] name = "borked" path = "lib.rs" [[bin]] name = "borked-exe" path = "main.rs" 
// lib.rs #![crate_name="borked"] #![crate_type = "lib"] pub const X : u32 = 42; 
// main.rs #![crate_name="borked-exe"] #![crate_type = "bin"] extern crate borked; pub fn main() { println!("{}", borked::X); } 

I expect to be able to call cargo package successfully on this project, but instead I get an error:

$ cargo --version cargo 0.0.1-pre-nightly (e4f0662 2015-03-09) (built 2015-03-09) $ rustc --version rustc 1.0.0-nightly (12b846ab8 2015-03-09) (built 2015-03-09) $ cargo package --verbose warning: manifest has no documentation, homepage or repository. See http://doc.crates.io/manifest.html#package-metadata for more info. Packaging borked v0.0.1 (file:///Users/dwrensha/Desktop/test-cargo) Archiving Cargo.toml Archiving lib.rs Archiving main.rs Verifying borked v0.0.1 (file:///Users/dwrensha/Desktop/test-cargo) Compiling borked v0.0.1 (file:///Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1) Running `rustc target/package/borked-0.0.1/lib.rs --crate-name borked --crate-type lib -g -C metadata=dd0cc381a16f4c06 -C extra-filename=-dd0cc381a16f4c06 --out-dir /Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug --emit=dep-info,link -L dependency=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug -L dependency=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug/deps` Running `rustc target/package/borked-0.0.1/main.rs --crate-name borked-exe --crate-type bin -g --out-dir /Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug --emit=dep-info,link -L dependency=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug -L dependency=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug/deps --extern borked=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug/libborked-10dfc3af5b511e89.rlib` error: extern location for borked does not exist: /Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug/libborked-10dfc3af5b511e89.rlib target/package/borked-0.0.1/main.rs:6:1: 6:21 error: can't find crate for `borked` target/package/borked-0.0.1/main.rs:6 extern crate borked; ^~~~~~~~~~~~~~~~~~~~ error: aborting due to 2 previous errors failed to verify package tarball Caused by: Could not compile `borked`. Caused by: Process didn't exit successfully: `rustc target/package/borked-0.0.1/main.rs --crate-name borked-exe --crate-type bin -g --out-dir /Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug --emit=dep-info,link -L dependency=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug -L dependency=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug/deps --extern borked=/Users/dwrensha/Desktop/test-cargo/target/package/borked-0.0.1/target/debug/libborked-10dfc3af5b511e89.rlib` (exit code: 101) 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions