[Chapter1-2] Rust 프로그램 작성
Hello, world!
- 프로젝트 디렉토리 만들기
$ mkdir ~/projects
$ cd ~/projects
$ mkdir hello_world
$ cd hello_world
- 프로그램 작성
위에서 만든 디렉토리 안에 main.rs 라는 새로운 소스 파일 생성 후 아래의 코드 입력
fn main() {
println!("Hello, world!");
}
- 컴파일 및 실행
rustc를 사용하여 컴파일을 하고 만들어진 실행파일을 실행시킵니다.
$ rustc main.rs
$ ./main
Hello, world!
- windows
> rustc main.rs
> .\main.exe
Hello, world!
컴파일 시 아래와 같이 실행파일이 만들어진 것을 확인할 수 있습니다.
$ ls
main main.rs
Hello, Cargo!
Cargo는 Rust의 빌드 시스템 및 패키지 매니저입니다.
- Cargo 설치 확인
$ cargo --version
- Cargo를 사용하여 프로젝트 생성
$ cargo new hello_cargo --bin
$ cd hello_cargo
위와 같이 Cargo가 두 개의 파일과 하나의 디렉토리를 생성한 것을 확인할 수 있습니다.
- Cargo.toml
이 파일은 TOML 포맷으로 작성된 Cargo의 환경설정 파일입니다.
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["Your Name <[email protected]>"]
[dependencies]
[package] : 패키지 환경설정을 나타냄
[dependencies] : 해당 프로젝트의 의존성 리스트 작성 가능
- src 디렉토리
src 디렉토리 안에는 main.rs 파일이 기본적으로 생성되어있고 원하는 코드로 변경 가능합니다. 소스파일들은 src 디렉토리에서 관리하면 됩니다.
fn main() {
println!("Hello, world!");
}
- 빌드 및 실행
hello_cargo 디렉토리에서 다음을 실행
$ cargo build
Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 2.85 secs
이는 현재 디렉토리 대신 target/debug/hello_cargo에 실행파일을 생성합니다. 아래를 통해 실행 가능합니다.
$ ./target/debug/hello_cargo # or .\target\debug\hello_cargo.exe on Windows
Hello, world!
또한 위의 과정을 cargo run을 사용해 한번의 커맨드로 코드 컴파일 후 실행파일 실행이 가능합니다.
$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
Running `target/debug/hello_cargo`
Hello, world!
cargo check를 사용해 코드가 컴파일되는지 확인할 수 있습니다. 이는 실행파일을 생성하진 않습니다.
$ cargo check
Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.32 secs
릴리즈 빌드
프로젝트 배포(릴리즈)를 위해 cargo build --release를 사용해 최적화와 함께 컴파일 가능합니다.
이는 target/debug 대신 target/release에 실행파일을 생성합니다.
Author And Source
이 문제에 관하여([Chapter1-2] Rust 프로그램 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@inhwa1025/Chapter1-2-Rust-프로그램-작성저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)