• 【Rust 入门学习】1.2 使用 Cargo 构建 Rust 项目


    cargo 介绍

    Cargo 是 Rust 的构建系统和包管理器,它会构建代码、下载代码所依赖的库以及构建这些库。

    Cargo 一般随 Rust 一起安装,如果是通过其他方式安装,需要检查是否可用。

    使用 Cargo 创建项目

    现在使用 Cargo 创建一个新的 helloworld 项目,对比一下与之前的 helloworld 有什么不一样的地方。

    在项目文件夹下执行:

    cd ~/projects
    cargo new hello_cargo
    cd hello_cargo
    
    • 1
    • 2
    • 3

    这样就创建了一个名为 hello_cargo 的新目录,我们将项目命名为hello_cargo,Cargo 在同名目录中创建其文件。

    进入hello_cargo目录并列出文件。就会看到 Cargo 为我们生成了两个文件和一个目录:一个 Cargo.toml 文件和一个 src 目录,其中包含一个 main.rs 文件。

    它还初始化了一个新的 Git 存储库以及一个 .gitignore 文件。cargo new 如果您在现有的 Git 存储库中运行,则不会生成 Git 文件,可以使用cargo new --vcs=git.

    Cargo.toml 是清单文件,该文件采用TOMLTom’s Obvious, Minimal Language)格式,这是 Cargo 的配置格式。

    现在打开src/main.rs看看:

    文件名:src/main.rs

    fn main() {
        println!("Hello, world!");
    }
    
    • 1
    • 2
    • 3

    Cargo 生成了一个“Hello, world!” 为您准备的程序,与我们之前的项目与 Cargo 生成的项目的不同之处在于 Cargo 将代码放在了src 目录中,而我们在顶层目录中有一个Cargo.toml配置文件。

    Cargo 希望源文件位于src目录中,顶级项目目录仅用于 README 文件、许可证信息、配置文件以及与代码无关的任何其他内容。

    编译和运行项目

    编译

    $ cargo build
       Compiling hello_cargo v0.1.0 (/home/mshing/projects/hello_cargo)
        Finished dev [unoptimized + debuginfo] target(s) in 1.38s
    
    • 1
    • 2
    • 3

    运行

    $ ./target/debug/hello_cargo
    Hello, world!
    
    • 1
    • 2

    这样运行方式和之前一样,只是存放路径不一致。

    第一次运行cargo build也会导致 Cargo 在顶层创建一个新文件:Cargo.lock。该文件跟踪项目中依赖项的确切版本,建议手动修改该文件。

    进阶

    我们刚刚构建了一个项目cargo build并使用 运行它 ./target/debug/hello_cargo,但我们也可以使用它cargo run来编译代码,然后在一个命令中运行生成的可执行文件

    $ cargo run
        Finished dev [unoptimized + debuginfo] target(s) in 0.01s
         Running `target/debug/hello_cargo`
    Hello, world!
    
    • 1
    • 2
    • 3
    • 4

    请注意,这次我们没有看到表明 Cargo 正在编译的输出 hello_cargo

    Cargo 发现文件没有改变,所以它只运行二进制文件。

    如果修改了源代码,Cargo 会重新编译然后再运行:

    $ cargo run
       Compiling hello_cargo v0.1.0 (/home/mshing/projects/hello_cargo)
        Finished dev [unoptimized + debuginfo] target(s) in 0.33s
         Running `target/debug/hello_cargo`
    Hello, 中国!
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Cargo 还提供了一个名为cargo check. 此命令快速检查代码以确保它可以编译但不会生成可执行文件:

    $ cargo check
        Checking hello_cargo v0.1.0 (/home/mshing/projects/hello_cargo)
        Finished dev [unoptimized + debuginfo] target(s) in 0.09s
    
    • 1
    • 2
    • 3

    有关 Cargo 的更多信息,请查看其文档

  • 相关阅读:
    备战数学建模37-遗传算法GA(攻坚战1)
    基于高效多分支卷积神经网络的生长点精确检测与生态友好型除草
    冥想第五百一十六天
    Serverless 架构落地实践及案例解析
    ArrayList扩容源码解析
    设计模式-创建型-04-建造者模式
    机械硬盘HDD
    vue项目中 jsconfig.json是什么
    MySQL 事务
    注解配置SpringMVC
  • 原文地址:https://blog.csdn.net/Magic_Ninja/article/details/126051503