Cargo

Cargo

  • Rust 의 빌드 시스템이자 패키지 관리자
  • 코드를 빌드하는 기능
  • 코드가 의존하는 라이브러리 다운로드
  • 라이브러리 빌드 등
  • Rust 프로젝트를 관리하는 일을 맡아서 함.

Cargo 의 설치

  • 공식 설치 방법으로 Rust 를 설치했다면, 자동으로 함께 설치됨.
1
2
cargo --version
>> cargo 1.81.0

Cargo 로 프로젝트 만들기

  • cargo new [프로젝트명] 명령어로 Rust 프로젝트 디렉터리 생성 가능
1
2
3
4
5
# 기본 사용법 
cargo new [프로젝트명]

# 예시
cargo new hello_world

Cargo.toml

  • TOML : Tom’s Obvious, Minimal Language
1
2
3
4
5
6
7
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2024"

[dependencies]
...
  • [package] : 컴파일에 필요한 구성 정보(이름, 버전, 사용한 Rust 에디션) 명세
  • [dependencies] : 프로젝트의 종속성 라이브러리 명세.
  • Rust 에서는 코드 패키지(라이브러리)를 Crates(크레이트) 라고 지칭함.

Cargo 를 사용하는 이유

  • 간단한 프로젝트의 경우 rustc 로 컴파일하나, Cargo 로 컴파일하나 큰 차이 없음.
  • 프로그램이 복잡해지면 rustc 만으로 프로젝트를 관리하기는 힘듦.
  • Cargo 가 자동으로 여러 종속성을 관리하고, 빌드를 조정함으로써 프로젝트 관리에 큰 편의성 제공

Cargo 사용하기

Cargo build

  • 프로젝트를 빌드할 때 사용하는 명령어
  • 빌드 : 작성한 코드를 기반으로 바이너리(애플리케이션)를 생성하는 일련의 작업
  • 빌드와 관련한 자세한 내용은 이후의 포스트에서 다시 다룰 예정.
1
2
3
4
5
6
7
cargo build [option]

# --release : 애플리케이션 배포용 릴리스 빌드  
# --verbose : 빌드 과정을 자세히 출력
# --target : 실행될 플랫폼을 지정하여 빌드
#            (x86_64-unknown-linux-gnu / wasm32-unknown-unknown ..)
# 등등..  

Cargo Run

  • 프로젝트를 빌드한 다음 바이너리(애플리케이션)을 실행시키는 명령어
  • 즉, cargo build 명령어를 포함한 명령어임.
  • 바이너리 경로를 몰라도 바이너리 실행까지 작동되므로, build 보다 선호됨
1
2
3
4
5
6
7
8
cargo run [option]

# run 은 build 명령어를 포함 -> build 옵션 유지 + 실행 관련 옵션 추가됨.
# --release : 상동
# --verbose : 상동
# --target : 상동
# --[인자명] 값 : 실행시 특정 인자에 대한 값을 지정하여 실행
# 등등...

Cargo Check

  • 프로젝트가 컴파일되는 과정에서 발생할 수 있는 오류를 빠르게 체크하는 기능
  • 실행 가능한 바이너리 파일이 만들어지지는 않는 대신
  • 컴파일러 연산을 반복하여 소스 코드에 대한 오류와 경고를 검사하는 데 초점
  • 빠른 빌드, 정적 분석, 의존성 확인
1
cargo check

Reference

https://doc.rust-lang.org/book/ch01-03-hello-cargo.html

Comments