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