• 【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 的更多信息,请查看其文档

  • 相关阅读:
    Hundred Finance 攻击事件分析
    猜数字游戏(Rust实现)
    女生适不适合干软件测试这一行?“钱”程如何?适合长期发展不?
    JavaWeb在线商城系统(java+jsp+servlet+MySQL+jdbc+css+js+jQuery)
    Java线程池总结
    【OpenCV 例程300篇】250. 梯度算子的传递函数
    SpringBoot 整合 RabbitMQ
    文化常识(通用)
    shell中的条件控制语句
    ChatGLM3 本地部署的解决方案
  • 原文地址:https://blog.csdn.net/Magic_Ninja/article/details/126051503