Rust-Lang의 Cargo

'러스트 박살내기(?)' 시리즈Rust-Lang의 Cargo

baealex

소비적인 일보단 생산적인 일을 좋아합니다.

Sign in to view email

Cargo

Rust-Lang은 Node의 NPM처럼 Cargo라는 공식 패키지 관리자를 제공하고 있다. 러스트 공식 문서에서는 source.rs를 생성하여 코드를 작성하는 것 보다는 Cargo를 이용하는 것을 추천하고 있다. Cargo를 사용하면 소스코드의 라이브러리 의존성을 간단하게 관리할 수 있다.


새로운 프로젝트

cargo new project_name

위 명령어를 사용하여 프로젝트를 생성할 수 있다. 라이브러리를 생성하는 거라면 아래와 같이 생성할 수 있다.

cargo new --lib library_name

프로젝트를 생성하면 아래와 같은 계층으로 생성된다.

project_name
├── Cargo.toml
└── src
    └── main.rs
Cargo.toml
[package]
name = "project"
version = "0.1.0"
authors = ["baealex <im@baejino.com>"]
edition = "2018"

[dependencies]
clap = "2.27.1" # from crates.io
rand = { git = "https://github.com/rust-lang-nursery/rand" } # from online repo
bar = { path = "../bar" } # from a path in the local filesystem

Cargo.toml파일은 프로젝트의 전체적인 내용을 관리해주는 파일이다.

  • [package] : 프로젝트의 이름과 생성자가 자동으로 생성되며 프로젝트의 버전을 명시적으로 관리할 수 있다.
  • [dependencies] : 라이브러리를 기록하여 프로젝트를 의존성을 관리할 수 있다. 버전을 나열하면 crates.io에서 설치하며 online repo와 local path로 작성해둘 수도 있다.


Crate 설치

크레이트는 러스트 코드의 묶음(라이브러리)인데 만일 rand라는 크레이트를 설치하려면 Cargo.tomldependencies에 아래 내용을 추가한다.

[dependencies]
rand = "0.3.14"

위와같이 수정하면 별도의 설치 작업을 해주지 않아도 된다. 아래 빌드 명령을 실행하면 Cargo가 변화된 크레이트를 감지하여 알아서 설치한다. 설치후 Cargo.lock이 생성되는데 차후에 다시 프로젝트를 빌드할 때 Cargo.lock이 존재하는 경우 Cargo.lock에 적혀진 크레이트와 동일한 버전을 설치하게 된다.


프로젝트 빌드 & 실행

러스트를 단일 소스코드로 생성한 경우 rustc라는 명령어로 컴파일을 실행해주어야 하는데 Cargo를 사용하여 프로젝트를 생성한 경우

cargo build

위 명령어를 통해서 빌드할 수 있다. 그럼 target/debug에 윈도우의 경우 exe, 리눅스의 경우에는 확장자 없는 실행파일로 생성되어 있는 것을 확인할 수 있다. 릴리즈로 빌드하려면 위 빌드 명령어에서 --release 옵션을 붙여주면 된다.

곧바로 실행한 결과를 확인하려면 아래 명령어를 사용하면 된다.

cargo run

'러스트 박살내기(?)' 시리즈
러스트... 부셔버리겠어! 🔥🔥🔥 는... 내가 박살나는 중... 😥😫
작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.