제임스딘딘의
Tech & Life

개발자의 기록 노트

[Rust] 윈도우 환경에서 컴파일 실패 : linker link.exe not found

제임스-딘딘 2023. 4. 5. 12:15

문제

아래는 Rust의 Hello world 출력 코드이다.

fn main() {
    println!("Hello, world!");
}

MS윈도우 환경에서, 이것을 cargo run 명령을 통해 실행해보려고 하는데 아래와 같은 에러를 만나게 될 때가 있다.

error: linker link.exe not found

rustc compile failure. error: linker link.exe not found

 

원인

Rust컴파일러는 MS윈도우 용 실행파일을 만들어내기 위해 MS Visual C++ Build Tools 를 사용한다.
link.exe 는 컴파일된 오브젝트파일을 라이브러리들과 링크 시켜주는 빌드 툴의 하나.
그런데, 어떤 이유에서인지 이게 설치가 안된 상황이라면 이런 에러가 발생한다.

Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)

error: linker `link.exe` not found
note: The system cannot find the file specified. (os error 2)
note: the msvc targets depend on the msvc linker but `link.exe` was not found
note: please ensure that VS 2013, VS 2015 or VS 2017 was installed with the Visual C++ option
error: aborting due to previous error
error: Could not compile `helloworld`.

To learn more, run the command again with --verbose.

 

해결방법

MS C++빌드 툴 설치 프로그램을 사용해서 'Build Tools for Visual Studio 2019' 를 다운받아 설치한다.

https://visualstudio.microsoft.com/visual-cpp-build-tools/

 

Microsoft C++ Build Tools - Visual Studio

The Microsoft C++ Build Tools provides MSVC toolsets via a scriptable, standalone installer without Visual Studio. Recommended if you build C++ libraries and applications targeting Windows from the command-line (e.g. as part of your continuous integration

visualstudio.microsoft.com

약 5GB ~ 6GB 정도 크기.
설치 완료 후 재부팅한다.
다시 Rust 컴파일 해보면 아래와 같이 정상적으로 컴파일 후 링크까지 되어 exe 파일을 생성해 낸다.

> cargo run
Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)
Finished dev [unoptimized + debuginfo] target(s) in 12.05s
  Running `target\debug\helloworld.exe`
Hello, world!

 

 

참조 : https://stackoverflow.com/questions/55603111/unable-to-compile-rust-hello-world-on-windows-linker-link-exe-not-found