tna*_*dek 17 linker compilation build rust rust-cargo
将Servo作为二进制文件的一部分嵌入时,我遇到了很长的连续构建时间.例如,使用本教程嵌入Servo,在初始构建完成后,对我的代码的任何修改都需要40s +来重建第4代四核i7上的二进制文件:
以下是Cargo的样本输出:
? cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.1 secs
? touch src/main.rs
? cargo build
Compiling servo-embedding-example v0.1.0
Finished dev [unoptimized + debuginfo] target(s) in 57.9 secs
Run Code Online (Sandbox Code Playgroud)
我正在运行一个最近的夜间工具链:
? rustc --version
rustc 1.25.0-nightly (15a1e2844 2018-01-20)
? cargo --version
cargo 0.26.0-nightly (6a8eb71f6 2018-01-13)
Run Code Online (Sandbox Code Playgroud)
增量构建正在进行:
? echo $CARGO_INCREMENTAL
1
Run Code Online (Sandbox Code Playgroud)
我不打算经常更新伺服,但我需要它我的应用程序.有没有办法加快构建时间?
小智 6
您可以做的一件事是将直接与Servo交互的代码与项目的其余部分分离到项目中自己的库中.
project-rs
??? Cargo.toml
??? src
? ??? bin
? ? ??? main.rs
? ??? this_needs_servo
? ? ??? Cargo.toml
? ? ??? lib.rs
? ??? ui
? ??? Cargo.toml
? ??? lib.rs
??? tests
??? tests.rs
Run Code Online (Sandbox Code Playgroud)
你会添加
[dependencies.this_needs_servo]
path = "src/this_needs_servo"
Run Code Online (Sandbox Code Playgroud)
到项目根目录中servo的Cargo.toml 并将依赖项移动到this_needs_servolib 下的Cargo.toml中.
要使用此库,您可以向main.rs 添加extern crate this_needs_servo;所有必需的use语句.
现在servo应该只在你改变this_needs_servolib 中的内容时编译.
| 归档时间: |
|
| 查看次数: |
782 次 |
| 最近记录: |