我正在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配置行,那么测试将构建并运行正常。
我有两种可能性:
在以不同方式运行测试时,是否需要配置包的构建(即,它不构建静态库)?
我是否需要在测试中以不同方式链接静态库包(即好像它是系统C库)?
从文档中可以清楚地了解配置此设置的正确方法是什么,或者如何解决此问题。