yoongrammer

Rust 빌드 하기 본문

언어/Rust

Rust 빌드 하기

yoongrammer 2020. 11. 8. 10:00
728x90

목차

    Rust 빌드 하기


    Rust 코드를 작성하고 실행하는 방법에 대해 알아보도록 하겠습니다.

    Linux 및 MacOS 기준으로 설명하겠습니다.

     

    1. 프로젝트 디렉터리 생성

    아래와 같이 $HOME경로에 프로젝트 디렉터리를 만듭니다.

    $ mkdir ~/projects
    $ cd ~/projects
    $ mkdir hello_world
    $ cd hello_world

    2. Rust 프로그램 작성하기

    러스트 파일들은 .rs 확장자로 끝납니다. hello_world 디렉터리에서 main.rs 파일을 만들고 아래 코드를 작성합니다.

    fn main() {
      println!("Hello, world!")
    }

    3. 컴파일하기

    rustc를 사용하여 컴파일하면 실행파일이 만들어집니다.

    $ rustc main.rs
    $ ls 
    main    main.rs

    4. 실행하기

    실행파일을 실행해 봅니다.

    $ ./main
    Hello, world!

    Cargo 사용하기


    Cargo란 러스트의 빌드 시스템 및 패키지 매니저입니다.

    Cargo를 사용하여 빌드할 수 있습니다.

     

    위 방식과의 차이점은 Cargo는 빌드뿐만 아니라 의존성 있는 라이브러리까지 다운로드해줍니다.

    1. 프로젝트 생성하기

    cargo new 명령을 사용하여 새로운 프로젝트를 생성해 줍니다.

    $ cargo new cargo_test

    명령어를 수행하면 cargo_test 디렉터리가 생성되고 안에는 Cargo.toml 파일과 src 디렉터리가 생성됩니다.

     

    Cargo.toml

    이 파일은 TOML(Tom's Obvious, Minimal language) 포맷으로 작성된 Cargo의 환경설정 파일입니다.

    [package]
    name = "cargo_test"
    version = "0.1.0"
    authors = ["Your Name <you@example.com>"]
    
    [dependencies]

    [package] 섹션은 패키지 환경설정을 나타냅니다.

    [dependencies] 섹션은 해당 프로젝트의 의존성 리스트 적을 수 있습니다.

    cargo로 빌드를 할 때 dependencies에 있는 리스트들을 다운로드하게 됩니다.

     

    src 디렉터리

    src 디렉터리 안에는 main.rs파일이 기본으로 생성되어있고 원하는 코드로 변경 가능합니다.

    소스파일들은 src디렉터리에서 관리하면 됩니다.

     

    src/main.rs 내용

    fn main() {
        println!("Hello, world!");
    }

    2. 빌드 및 실행

    cargo_test 디렉터리에서 cargo build를 사용하여 빌드합니다.

    $ cargo build

    빌드가 완료되면 현재 디렉터리에서./target/debug/cargo_test라는 실행파일이 생성됩니다.

     

    cargo_test 디렉터리에서 다음 커맨드를 입력하여 실행합니다.

    $ ./target/debug/hello_cargo
    Hello, world!

    또한, cargo run 을 사용하여 한번에 컴파일 및 실행을 할 수 있습니다.

    $ cargo run
        Finished dev [unoptimized + debuginfo] target(s) in 0.00s
         Running `target/debug/cargo_test`
    Hello, world!

    cargo check 를 사용하여 코드가 컴파일되는지 확인할 수 있습니다.

    cargo check
        Checking cargo_test v0.1.0 (/Users/Username/projects/cargo_test)
        Finished dev [unoptimized + debuginfo] target(s) in 0.17s

    cargo build와 다르게 cargo check는 실행파일은 만들지 않습니다.

     

    단순한 프로젝트에서는 rustc를 사용하는 것에 비해 큰 이득은 없지만, 프로젝트가 복잡해질수록 Cargo로 관리하는 것이 훨씬 효율적입니다.

    728x90

    '언어 > Rust' 카테고리의 다른 글

    Rust 설치하기  (0) 2020.11.07
    Comments