Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

외부 rustc_driver

rustc_private

개요

rustc_private 기능을 사용하면 외부 크레이트에서 컴파일러 내부 구현을 사용할 수 있습니다.

공식 툴체인에서 rustc_private 사용하기

rustup으로 배포되는 공식 Rust 툴체인에서 rustc_private 기능을 사용하려면 추가 구성 요소 두 가지를 설치해야 합니다:

  1. rustc-dev: 컴파일러 라이브러리를 제공합니다
  2. llvm-tools: 링크에 필요한 LLVM 라이브러리를 제공합니다

설치 단계

rustup으로 두 구성 요소를 모두 설치하십시오:

rustup component add rustc-dev llvm-tools

흔한 오류

llvm-tools 구성 요소가 없으면 다음과 같은 링크 오류가 발생합니다:

error: linking with `cc` failed: exit status: 1
  |
  = note: rust-lld: error: unable to find library -lLLVM-{version}

사용자 정의 툴체인에서 rustc-private 사용하기

직접 빌드한 툴체인이나 rustup을 사용하지 않는 환경에서는 일반적으로 추가 설정이 필요합니다:

요구 사항

  • 시스템의 라이브러리 검색 경로에서 LLVM 라이브러리를 찾을 수 있어야 합니다
  • LLVM 버전은 Rust 툴체인을 빌드할 때 사용한 버전과 같아야 합니다

문제 해결 단계

  1. LLVM이 설치되어 있고 접근할 수 있는지 확인하십시오
  2. 라이브러리 경로가 설정되어 있는지 확인하십시오:
    export LD_LIBRARY_PATH=/path/to/llvm/lib:$LD_LIBRARY_PATH
    
  3. LLVM 버전이 Rust 툴체인과 호환되는지 확인하십시오

트리 외부 프로젝트를 위한 rust-analyzer 설정하기

rustc_private 크레이트를 사용하는 트리 외부 프로젝트를 개발할 때는 rust-analyzer가 이러한 크레이트를 인식하도록 설정할 수 있습니다.

설정 단계

  1. 에디터 설정에서 rust-analyzer.rustc.source를 "discover"로 설정하십시오.

    VS Code에서는 rust_analyzer_settings.json에 다음을 추가하십시오:

    {
        "rust-analyzer.rustc.source": "discover"
    }
    
  2. rustc_private를 사용하는 모든 크레이트의 Cargo.toml에 다음을 추가하십시오:

    [package.metadata.rust-analyzer]
    rustc_private = true
    

이렇게 설정하면 rust-analyzer가 트리 외부 프로젝트의 rustc_private 크레이트를 올바르게 인식하고 IDE 지원을 제공할 수 있습니다.

rustc_private의 nightly 문서 보기

최신 nightly

최신 nightly의 경우 rustc-docs 구성 요소를 설치한 뒤 브라우저에서 바로 열어 볼 수 있습니다:

rustup component add rustc-docs
rustup doc --rustc-docs

참고: rustc-docs 컴포넌트는 최신 nightly 툴체인에서만 제공되며, 모든 nightly 날짜에 존재하지 않을 수도 있습니다. 이 컴포넌트는 PR #75560(2020년 8월)에서 처음 도입되었습니다.

이전 nightly

이전 nightly의 컴파일러 내부에 의존하고 있다면, 해당 nightly의 내부 문서를 참고하는 것이 좋습니다. 이렇게 하는 유일한 방법은 문서를 로컬에서 생성하는 것입니다. 예를 들어, nightly-2025-11-08의 문서를 얻으려면 다음과 같이 하십시오.

해당 nightly의 Git 커밋 해시를 가져오십시오:

rustup toolchain install nightly-2025-11-08
rustc +nightly-2025-11-08 --version --verbose

출력에는 정확한 소스 리비전을 식별하는 commit-hash 줄이 포함됩니다. 해당 커밋에서 rust-lang/rust를 체크아웃한 다음, 컴파일러 문서의 단계를 따르십시오.

추가 자료

  • GitHub 이슈 #137421에서는 rustc_private 링커 오류가 llvm-tools가 설치되어 있지 않아 발생하는 경우가 많다고 설명합니다.