官术网_书友最值得收藏!

The compile and run commands

As the main build tool, cargo does compile and run by way of creating and then executing the output binary (usually found in target/<profile>/<target-triple>/).

What if a library written in a different language is required to precede the Rust build? This is where build scripts come in. As mentioned in the Project configuration section, the manifest provides a field called build which takes a path or name to a build script.

The script itself can be a regular Rust binary that generates output in a designated folder, and can even have dependencies specified in Cargo.toml ([build-dependencies], but nothing else). Any required information (target architecture, output, and so on) is passed into the program using environment variables, and any output for cargo is required to have the cargo:key=value format. Those are picked up by cargo to configure further steps. While the most popular is building native dependencies, it's entirely possible to generate code (such as bindings, data access classes, and so on) as well. Read more in the cargo reference: https://doc.rust-lang.org/cargo/reference/build-scripts.html.

Larger projects will require a more complex structure than a simple src/ folder to contain all the source code, which is why cargo provides the option to split projects into subprojects, called a workspace. This comes in handy for architectural patterns such as microservices (each service could be a project), or loosely coupling components (clean architecture). To set this up, place each subproject in a subdirectory and create a Cargo.toml in the workspace that declares its members:

[workspace] 
members = [ "core", "web", "data"]

This applies any commands run at the top level to every crate in the workspace. Invoking cargo test will run all types of tests and that can take a long time.

主站蜘蛛池模板: 兰州市| 南汇区| 农安县| 玉门市| 德钦县| 永年县| 浦北县| 南丹县| 陆河县| 钟祥市| 师宗县| 博白县| 家居| 瑞安市| 东乌珠穆沁旗| 汝州市| 罗源县| 红原县| 威海市| 沽源县| 辉县市| 庆安县| 多伦县| 奈曼旗| 延川县| 孟村| 宝兴县| 兰西县| 象州县| 兴山县| 师宗县| 辽阳县| 南雄市| 黑水县| 广安市| 保山市| 兴城市| 普格县| 繁昌县| 竹山县| 嘉祥县|