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

Учебник по Cargo

Что такое Cargo

Cargo - это система сборки и менеджер пакетов для Rust.

Разработчики Rust часто используют Cargo для управления проектами Rust и получения зависимостей проекта. В предыдущем уроке мы использовали команду cargo new greeting для создания проекта greeting, Cargo создал папку greeting и部署ил в ней типичную структуру файлов Rust проекта. Эта папка greeting - это сам проект.

Функции Cargo

Cargo, кроме создания проекта, также имеет функции сборки (build) и выполнения (run) проекта, сборка и выполнение соответствуют следующим командам:

cargo build 
cargo run

Cargo также имеет функции получения пакетов,打包, продвинутая сборка и т.д., подробности использования см. в команде Cargo.

Настройка проекта Rust в VSCode

Cargo - это неплохой инструмент для сборки, если использовать его с VSCode, то VSCode станет очень удобной средой разработки.

В предыдущей главе мы создали проект greeting, теперь откроем папку greeting в VSCode (Внимание, не w3codebox-greeting)。

Откройте greeting, создайте новую папку .vscode (внимание, перед vscode точка, если папка уже существует, её не нужно создавать). В新建ленной папке .vscode создайте два файла tasks.json и launch.json, содержимое файлов таково:

файл tasks.json

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

файл launch.json (подходит для системы 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": "Укажите каталог, где находится GDB", 
"setupCommands": [ 
{ 
"description": "Включить красивую печать для gdb", 
"text": "-enable-pretty-printing", 
"ignoreFailures": true 
} 
} 
} 
] 
}

файл launch.json (для использования на системах Linux)

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

Файл launch.json (подходит для Mac OS)

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

Затем нажмите "Запуск" в левой панели VSCode.

Если вы используете MSVC, выберите "(Windows) Start".

Если вы используете MinGW и установили GDB, выберите "(gdb) Start", перед запуском gdb, пожалуйста, заполните "miDebuggerPath" в launch.json.


Программа начнет отладку и запуск. Вывод будет отображаться в "Диспетчер отладки":


Отладка Rust в VSCode

Методы отладки программ ähnlich anderen Umgebungen, es genügt, auf die rote Markierung links vom Zeilennummer zu klicken, um einen Breakpoint zu setzen. Wenn der Breakpoint erreicht wird, wird das Programm angehalten, damit der Entwickler die Werte der Variablen in Echtzeit überwachen kann.