How to using cargo

오병진·2022년 6월 21일
0

Learnning Rust

목록 보기
3/7

Rust에서 컴파일을 rustc로 사용하는게 기본이다.

그치만 rustc를 사용하게 된다면 많은 애로사항이 꽃피게 된다.

  1. 다양한 환경에 대한 대응
  2. 외부 라이브러리 사용
  3. 프로젝트 관리
    etc.

그러기에 우리 Rustacean들은 cargo를 적극 사용한다.

version check

$ cargo --version
cargo 1.60.0 (d1fd9fe2c 2022-03-01)

만약 명령어를 찾을 수 없습니다가 뜬다면
여러분이 rust를 다운받은 곳의 문서를 확인해주시길 바란다.

프로젝트 생성

cargo new {{project_name}} --bin
cargo new {{project_name}}

둘은 별 다를바 없다.
설명을 보면

--bin                    Use a binary (application) template [default]

다음과 같기 때문이다.

기본값이여서!!

또한 생성된 파일 구조를 보면

root - .git
	 - src			- main.rs
     - .gitignore
     - Cargo.toml

의 형태로 구조가 생성된다.

git이 기본적으로 생성되고 초기화 되어있는걸 볼 수 있다는 뜻이다.

Cargo.toml

[package]
name = "test2"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

다음과 같은 형식으로 나타나게 된다.

[package]

해당 파트의 경우 패키지 환경설정값들을 의미한다.

[dependencies]

해당 파트의 경우 해당 프로젝트에 대한 의존성을 나타낸다.
또한 러스트에서 각 패키지들을 crate(크레이트)라고 부른다.

Build

방금 막 만든 Cargo 프로젝트를 빌드시켜볼 것이다.

cargo.toml이 있는 위치에서 마법을 부려 볼 것이다.
주문은 다음과 같다

$ cargo build
Compiling test2 v0.1.0 (D:\coding\rust_test\test2)
Finished dev [unoptimized + debuginfo] target(s) in 2.00s

그리고 우린 빌드된 파일을
target/debug에서 찾아 볼 수가 있다.

윈도우라면 test2.exe파일이 아니라면 test2가 생길 것이다.

Run

한번 빌드시켰던 파일이라면, 변경사항이 없다면!
우리 똑똑한 cargo는 다시 한번더 컴파일하지않는다.

$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running target\debug\test2.exe
Hello, world!

만약 변경사항이 있다면
빌드 이후, 파일을 실행시켜준다.

Check

$ cargo check
Checking test2 v0.1.0 (D:\coding\rust_test\test2)
Finished dev [unoptimized + debuginfo] target(s) in 0.27s

이 친구는 좀 간단하고 편리하다.

그저 단지, 해당 파일이 컴파일이 성공할 수 있는지에 대해서 알려준다.
실행파일은 생성하지않은 채
그러기에 build보다 빠르면서 효율적이다.

정리하면서..

물론 간단한 Hello World나 출력하는 프로그램에서는 cargo가 이점을 얻지는 못한다.

그렇지만 더 복잡한, 체계적인, 의존성을 지닌 프로그램에서는 빛을 발하게 되어있다.
그 문제를 해결하기 위해서 나온 프로그램이기에.

profile
지나가는 사람입니다. 마저 지나갈게요 :D

0개의 댓글