5장에서 lib.rs와 main.rs 파일의 차이점과 카고가 언제, 어떤 파일을 생성하는지 알아볼 것이다. target 폴더에는 debug라는 또 다른 폴더가 있는데, cargo run 명령으로 생성되어 컴파일된 코드가 들어 있다. 간단하게 cargo build를 실행해도 동일한 효과를 내지만, 이 명령은 빌드만 하고 프로그램은 실행하지 않는다.
러스트 프로그램을 빌드할 때 러스트 컴파일러(Rustc)는 바이트코드를 생성하고 이를 LLVM(https://llvm.org)4이라는 다른 컴파일러에 전달하여 기계 코드를 만든다. 이는 LLVM이 지원하는 모든 운영체제에서 러스트를 컴파일할 수 있다는 것이다. 전체 구조는 그림 1-2에 나와 있다.