在构建静态库时,如何从'tests'文件夹中的集成测试链接Rust crate?

时间:2016-12-20 11:44:30

标签: rust static-libraries rust-cargo

我正在Rust中构建一个将从C / C ++代码调用的库。 Cargo.toml配置为将包传输为静态库:

[lib]
crate-type = ["staticlib"]

我在tests/integration_test.rs进行了测试:

extern crate mylibrary;

#[test]
fn it_works() {
    hello_world();   // Defined in 'mylibrary'.
}

但是,使用cargo test运行测试时,会输出以下错误:

error[E0463]: can't find crate for `mylibrary`
 --> tests\integration_test.rs:1:1
  |
1 | extern crate mylibrary;
  | ^^^^^^^^^^^^^^^^^^^^^ can't find crate

如果我从Cargo.toml删除staticlib配置行,那么测试将构建并运行正常。

我有两种可能性:

  1. 在以不同方式运行测试时,是否需要配置包的构建(即,它不构建静态库)?

  2. 我是否需要在测试中以不同方式链接静态库包(即好像它是系统C库)?

  3. 从文档中可以清楚地了解配置此设置的正确方法是什么,或者如何解决此问题。

0 个答案:

没有答案