Rust 개발에서 Cargo 속성

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 Rust 패키지 관리자로 널리 사용되는 Cargo 를 사용할 때 Rust 의 crate_typecrate_name 속성이 효과가 없음을 설명합니다.

참고: 실습에서 파일 이름을 지정하지 않으면 원하는 파일 이름을 사용할 수 있습니다. 예를 들어 main.rs를 사용하고 rustc main.rs && ./main으로 컴파일 및 실행할 수 있습니다.

크레이트

crate_type 속성은 컴파일러에게 크레이트가 바이너리인지 라이브러리인지 (그리고 어떤 종류의 라이브러리인지) 알려주는 데 사용되고, crate_name 속성은 크레이트의 이름을 설정하는 데 사용됩니다.

그러나 Cargo(Rust 패키지 관리자) 를 사용할 때 crate_typecrate_name 속성은 전혀 효과가 없다는 점에 유의하는 것이 중요합니다. Cargo 는 대부분의 Rust 프로젝트에서 사용되기 때문에 crate_typecrate_name의 실제 사용 사례는 상대적으로 제한적입니다.

// 이 크레이트는 라이브러리입니다.
#![crate_type = "lib"]
// 라이브러리의 이름은 "rary"입니다.
#![crate_name = "rary"]

pub fn public_function() {
    println!("called rary's `public_function()`");
}

fn private_function() {
    println!("called rary's `private_function()`");
}

pub fn indirect_access() {
    print!("called rary's `indirect_access()`, that\n> ");

    private_function();
}

crate_type 속성이 사용되면 rustc--crate-type 플래그를 전달할 필요가 없습니다.

$ rustc lib.rs
$ ls lib*
library.rlib

요약

축하합니다! 크레이트 실습을 완료했습니다. LabEx 에서 더 많은 실습을 통해 기술을 향상시킬 수 있습니다.