Cargo는 러스트의 빌드 시스템 및 패키지 매니저입니다. Cargo는 작성한 코드가 의존하고 있는 라이브러리를 다운로드 해주고, 코드와 라이브러리를 빌드해주는 등의 역할을 합니다. Rust 폴더에 카고를 이용해 새로운 프로젝트를 만들기 위해 다음과 같이 입력해줍니다.
cd ~/Rust
cargo new 프로젝트이름 --bin
--bin은 라이브러리가 아닌 실행 가능한 형식의 파일(바이너리)로 만들어줍니다.
카고로 러스트 프로젝트를 만들게 되면 그 안에 Cargo.toml, src 디렉토리, git 디렉토리가 생깁니다. 깃 저장소를 자동으로 생성해줍니다.
Cargo.toml은 프로젝트의 설정 파일로, 내부 구조는 다음과 같이 되어 있습니다.
[package]
name = "gussing-game"
version = "0.1.0"
edition = "2021"
authors = ["Geukggom <geukggom@gmail.com>"]
[dependencies]
rand = "0.5.0"
[package]는 패키지의 설정을 관리하기 위한 구문들이 있고, [dependencies]는 프로젝트에 사용되는 dependencies들이 있습니다.
카고 명령어로 프로젝트를 빌드하고 실행하는 방법은 다음과 같습니다.
cargo build
cargo run
cargo check
1) cargo build : 디버그 폴더에 실행 파일을 생성해줍니다. 생성한 파일을 실행해주려면 다음과 같은 커맨드를 입력해주어야 합니다.
./target/debug/프로젝트이름
2) cargo run : 코드를 컴파일해서 실행 파일을 생성하고, 실행까지 해줍니다.
3) cargo check : 코드가 컴파일이 되는지 확인만 하고, 실행 바이너리를 생성하지 않습니다.
개발 중간에 코드에 오류가 없는지 확인할 때 check를 사용하고, 실제로 실행이 필요할 때 run을 사용합니다.
Cargo.lock은 처음 프로젝트를 빌드할 때 Cargo 기준을 만족하는 모든 dependency 패키지의 버전을 확인하고 기록하는 파일입니다. 크레이트(Crate)의 다음 버전에 코드를 망치는 변경점이 있을 수 있는데, 이 때 명시적으로 cargo update 명령어로 버전업하지 않는 이상 이전 버전을 이용해 빌드합니다.
* Crate : 러스트 코드의 패키지 묶음
참조 : https://rinthel.github.io/rust-lang-book-ko/ch01-03-hello-cargo.html
'[Rust]' 카테고리의 다른 글
[Rust] 소유권 (0) | 2023.07.25 |
---|---|
[Rust] 제어문 (0) | 2023.07.20 |
[Rust] 함수 동작 원리 (0) | 2023.07.19 |
[Rust] 데이터 타입 (0) | 2023.07.18 |
[Rust] 변수와 가변성 (0) | 2023.07.17 |