리눅스 설치지 과정이지만 윈도우 설치에 대한 내용도 같이 있습니다.
러스트의 설치는 간단하다.
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ source ~/.cargo/env
설치를 마친 후 설치 확인
$ rustc --version
rustc 1.60.0 (7737e0b5c 2022-04-04)
문서를 보면 일부 러스트 패키지가 C코드에 의존적이기 때문에 링커를 실행할 수 없다는 에러가 발생할 수 있다고 한다. 따라서 C컴파일 환경을 구성하는 것이 좋다. 이 부분은 windows 사용자와 linux 사용자의 구성방법이 다를 수 있다.
C 개발환경 설치
windows 사용자
https://visualstudio.microsoft.com/ko/downloads/
[Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치
Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.
https://visualstudio.microsoft.com/ko/downloads/
위 링크에서 Visual Studio 20xx용 Build Tools를 설치한 하도록 하자.
리눅스 사용자라면(Rocky linux 등)
$ sudo yum groupinstall "Development Tools"
VSCode 설정
언어확장 설치
확장 프로그램을 설치해야한다. 확장 프로그램 검색에 `rust`라고 입력하면 다음과 같은 확장들이 보인다. 이 확장들은 언어를 지원하여 컴파일 및 문법체크, 자동완성등을 해주는 확장이라 보면 된다.
평점을 보면 Rust의 경우 3.5 rust-analizer의 경우 5다. 리뷰를 보면 Rust가 잘 동작하지 않는다고 rust-analyzer를 설치하라고 한다. rust-analizer를 설치하자.
환경 세팅
- workspace는 프로젝트 단위로 설정해야한다. 예를들어
$ cargo new --bin Myproject
으로 프로젝트를 생성했다면 Myproject 디렉토리가 워크스페이스가 되어야 한다. 그렇지 않으면 rust-analizer는 Cargo.toml 파일을 찾지 못하여 rust-analyzer failed to discover workspace 메세지가 뜨고 동작하지 않는다.
- Ctrl + Shift + b 를 누르면 vscode 팔레트에 cargo build 와 cargo check 가 보인다. 하나를 클릭하면 task.json이 자동 생성되다. 이 두 명령을 모두 task.json에 넣어 단축명령시마다 선택하여 실행하게 할 수 있다.
참고: Rust 확장도 동작은 되지만, 외부 패키지 자동완성이 제대로 동작하지 않은 듯 하다. 내가 잘 못 사용해서일 수도...
디버거 확장 설치
디버거 확장인 codeLLDB를 설치한다. 이 확장은 C++, Rust 등과 같은 컴파일 언어들을 지원한다.
디버거 설정
VSCode에서 디버거의 설정은 launch.json에서 담당한다. 이 설정은 워크스페이스마다 해야하는 것이며 워크스페이스는 보통은 VSCode가 실행되는 루트 디렉토리라 볼 수 있다.(워크스페이스에는 .vscode 라는 디렉토리가 만들어진다.)
.vscode 이 디렉토리에에 lanuch.json 이 없다면 F5를 눌러 디버깅을 시작하여 기본 launch.json을 만들 수 있다.
디버깅 최초 실행시 기본으로 만들어진 launch.json는 다음과 같다.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'guessing_game'",
"cargo": {
"args": [
"build",
"--bin=guessing_game",
"--package=guessing_game"
],
"filter": {
"name": "guessing_game",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'guessing_game'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=guessing_game",
"--package=guessing_game"
],
"filter": {
"name": "guessing_game",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
여기에서 guessing_name은 생성된 rust 프로젝트 이름이다.
다른 내용을 따로 손볼 필요는 없다.
이제 코드에 BreakPoint를 만든 후 F5를 눌러 디버깅이 제대로 동작하는지 확인하면 된다.
기타 설정
inlay hints 설정
inlay 설정은 러스트 함수에 전달될 파라미터나 변수의 타입을 보여주는 기능이다.
이 기능이 꽤 유용하지만 가독성으 나빠져서 이 기능을 토글로 만들 필요가 있다.
ctrl + shift + p -> open keyboard shortcusts 를 입력하고 메뉴를 클릭
여기에
rust analyzer: Toggle inlay hint 라고 치면 해당 기능 목록이 검색된다.
마우스 더블클릭 후 원하는 숏컷을 만들면 된다. 이미 사용되는 숏컷인지 테스트 해보고 사용할 것!