English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Cargo

O que é Cargo

Cargo é o sistema de construção e gerenciador de pacotes do Rust.

Desenvolvedores de Rust usam frequentemente o Cargo para gerenciar projetos Rust e obter bibliotecas dependentes do projeto. No tutorial anterior, usamos o comando cargo new greeting para criar um projeto chamado greeting, o Cargo criou uma pasta chamada greeting e implementou a estrutura de arquivo típica de um projeto Rust. Esta pasta greeting é o próprio projeto.

Funções do Cargo

Além de criar projetos, o Cargo também possui uma série de funções, como construir (build) e executar (run) projetos, que correspondem aos seguintes comandos:

cargo build 
cargo run

Cargo também possui funções como obter pacotes, empacotamento, construção avançada, etc., detalhes de uso consulte o comando Cargo.

Configurar projeto Rust no VSCode

Cargo é uma boa ferramenta de construção, se integrada ao VSCode, o VSCode se tornará um ambiente de desenvolvimento muito conveniente.

No capítulo anterior, criamos o projeto greeting. Agora, abra a pasta greeting no VSCode (Atenção, não é w3codebox-greeting)。

Abra o greeting após criar uma nova pasta .vscode (atenção ao ponto antes do vscode, se já existir esta pasta, não é necessário criar uma nova). Dentro da pasta .vscode recém-criada, crie dois arquivos: tasks.json e launch.json, cujo conteúdo é o seguinte:

tasks.json  文件

{ 
"version": "2.0.0", 
"tasks": [ 
{ 
"label": "build", 
"type": "shell", 
"command":"cargo", 
"args": ["build"] 
} 
] 
}

launch.json arquivo (aplicável no sistema Windows)

{ 
"version": "0.2.0", 
"configurations": [ 
{ 
"name": "(Windows) Start", 
"preLaunchTask": "build", 
"type": "cppvsdbg", 
"request": "launch", 
"program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", 
"args": [], 
"stopAtEntry": false, 
"cwd": "${workspaceFolder}", 
"environment": [], 
"console": false 
}, 
        { 
"name": "(gdb) Start", 
"type": "cppdbg", 
"request": "launch", 
"program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", 
"args": [], 
"stopAtEntry": false, 
"cwd": "${workspaceFolder}", 
"environment": [], 
"console": false, 
"MIMode": "gdb", 
"miDebuggerPath": "Aqui insira o diretório do GDB", 
"setupCommands": [ 
{ 
"description": "Ativar impressão formatada para o gdb" 
"text": "-enable-pretty-printing", 
"ignoreFailures": true 
} 
] 
} 
] 
}

launch.json arquivo (aplicável no sistema Linux)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "gdb"
            "preLaunchTask": "build",
            "request": "launch",
            "target": "${workspaceFolder}"/target/debug/${workspaceFolderBasename}
            "cwd": "${workspaceFolder}"
        }
    ]
}

Arquivo launch.json (aplicável para sistemas Mac OS)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Iniciar",
            "type": "cppdbg",
            "preLaunchTask": "build",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/${workspaceFolderBasename}
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

Em seguida, clique em "Executar" na lateral esquerda do VSCode.

Se você estiver usando MSVC, selecione "(Windows) Iniciar".

Se você estiver usando MinGW e tiver instalado o GDB, selecione "(gdb) Iniciar", antes de iniciar o GDB, certifique-se de preencher o "miDebuggerPath" no arquivo launch.json.


O programa começará a depurar e executar. As saídas de execução aparecerão na "Console de Depuração":


Depuração de Rust no VSCode

Os métodos de depuração do programa são semelhantes a outros ambientes, basta clicar no ponto vermelho à esquerda do número da linha para definir um ponto de parada. Quando encontrar um ponto de parada durante a execução, ele será pausado para que o desenvolvedor possa monitorar os valores das variáveis em tempo real.