프로그래밍/rust

리눅스(Rocky Linux)에서 rust 설치 및 VSCode 설정

콘파냐 2022. 4. 9. 23:03

리눅스 설치지 과정이지만 윈도우 설치에 대한 내용도 같이 있습니다.

러스트의 설치는 간단하다.

공식문서 참고

$ 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 Tools 다운로드 - Windows, Mac, Linux용 무료 설치

Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.

visualstudio.microsoft.com

위 링크에서 Visual Studio 20xx용 Build Tools를 설치한 하도록 하자.

 

리눅스 사용자라면(Rocky linux 등)

$ sudo yum groupinstall "Development Tools"

VSCode 설정

언어확장 설치

확장 프로그램을 설치해야한다. 확장 프로그램 검색에 `rust`라고 입력하면 다음과 같은 확장들이 보인다. 이 확장들은 언어를 지원하여 컴파일 및 문법체크, 자동완성등을 해주는 확장이라 보면 된다.

vscode extension for rust

평점을 보면 Rust의 경우 3.5 rust-analizer의 경우 5다. 리뷰를 보면 Rust가 잘 동작하지 않는다고 rust-analyzer를 설치하라고 한다. rust-analizer를 설치하자.

환경 세팅

  • workspace는 프로젝트 단위로 설정해야한다. 예를들어 
$ cargo new --bin Myproject

으로 프로젝트를 생성했다면 Myproject 디렉토리가 워크스페이스가 되어야 한다. 그렇지 않으면 rust-analizerCargo.toml 파일을 찾지 못하여 rust-analyzer failed to discover workspace 메세지가 뜨고 동작하지 않는다.

  • Ctrl + Shift + b 를 누르면 vscode 팔레트에 cargo build cargo check 가 보인다. 하나를 클릭하면 task.json이 자동 생성되다. 이 두 명령을 모두 task.json에 넣어 단축명령시마다 선택하여 실행하게 할 수 있다.

참고: Rust 확장도 동작은 되지만, 외부 패키지 자동완성이 제대로 동작하지 않은 듯 하다. 내가 잘 못 사용해서일 수도... 

 

디버거 확장 설치

디버거 확장인 codeLLDB를 설치한다. 이 확장은 C++, Rust 등과 같은 컴파일 언어들을 지원한다.

vscode extension CodeLLDB

디버거 설정

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 설정은 러스트 함수에 전달될 파라미터나 변수의 타입을 보여주는 기능이다.

inlay hints 활성화
inlay hints 비활성화

이 기능이 꽤 유용하지만 가독성으 나빠져서 이 기능을 토글로 만들 필요가 있다.

ctrl + shift + p -> open keyboard shortcusts 를 입력하고 메뉴를 클릭

여기에 

rust analyzer: Toggle inlay hint 라고 치면 해당 기능 목록이 검색된다.

마우스 더블클릭 후 원하는 숏컷을 만들면 된다. 이미 사용되는 숏컷인지 테스트 해보고 사용할 것!

반응형