Ошибка компиляции Rust на Windows: linker link.exe не найден
Почему возникает ошибка и как её исправить
Ошибка linker `link.exe` not found возникает потому, что компилятор Rust (rustc) не может найти стандартный линковщик Windows — link.exe. Этот линковщик входит в состав инструментов сборки Microsoft Visual C++ (MSVC). Rust по умолчанию использует цепочку инструментов MSVC на Windows, поэтому без установки соответствующих компонентов сборка невозможна.
Решение: установка Visual Studio Build Tools (рекомендуемый способ)
Вам нужно установить Microsoft C++ Build Tools. Это бесплатный пакет, который содержит только необходимые компиляторы и линковщики, без полной Visual Studio.
- Скачайте установщик с официального сайта: https://visualstudio.microsoft.com/visual-cpp-build-tools/
- Запустите установщик. Выберите вкладку "Рабочие нагрузки" (Workloads).
- Отметьте пункт "Разработка классических приложений на C++" (Desktop development with C++).
- Убедитесь, что в правой панели в разделе "Необязательные компоненты" отмечен пункт "Инструменты C++ для CMake" (C++ CMake tools for Windows) — он включает link.exe.
- Нажмите "Установить" и дождитесь завершения (потребуется ~2-5 ГБ дискового пространства).
После установки закройте и снова откройте терминал (или выполните команду refreshenv в PowerShell). Затем повторите сборку:
cargo build
Всё должно скомпилироваться успешно.
Альтернативный способ: установка полной Visual Studio Community
Если вам нужна полноценная среда разработки, можно установить Visual Studio Community (бесплатно для индивидуальных разработчиков). При установке также выберите рабочую нагрузку "Разработка классических приложений на C++". Это займёт больше места (~10-15 ГБ), но даст вам IDE и отладчик.
Проверка установки
После установки можно проверить, что линковщик доступен:
where link.exe
Вы должны увидеть путь вида: C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.xx.xxxxx\bin\Hostx64\x64\link.exe
Также можно проверить, что Rust видит нужные инструменты:
rustc --print target-list | findstr windows
rustc -C linker=link.exe --version
Дополнительный совет: использование GNU-линковщика
Если вы не хотите устанавливать MSVC, можно переключить Rust на использование цепочки инструментов GNU (MinGW). Для этого установите MinGW-w64 и выполните:
rustup default stable-x86_64-pc-windows-gnu
Однако этот способ менее стабилен для Windows и может вызывать проблемы с некоторыми библиотеками, поэтому я рекомендую первый вариант с MSVC.
После исправления вы сможете успешно компилировать и запускать вашу программу:
cargo run
Hello, world!
<<Быстрое решение через установку только компонентов линковщика
Если у вас ограниченное место на диске или вы не хотите ставить полный пакет Build Tools, можно установить только минимальный набор компонентов, необходимых для работы link.exe.
Скачайте установщик Visual Studio Build Tools, запустите его и выберите "Отдельные компоненты" (Individual components). Найдите и отметьте следующие пункты:
- MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
- Windows 10/11 SDK (последняя версия)
- C++ CMake tools for Windows
Эти компоненты весят около 1-2 ГБ и включают только компилятор, линковщик и необходимые заголовочные файлы. После установки перезагрузите терминал и проверьте:
cargo build
Если команда всё ещё не находит link.exe, попробуйте вручную добавить путь к нему в переменную окружения PATH. Обычно путь выглядит так:
C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.xx.xxxxx\bin\Hostx64\x64
Где 14.xx.xxxxx — версия инструментов MSVC (может отличаться).
Этот способ экономит место и время, но если в будущем вам понадобятся другие компоненты (например, отладчик или профилировщик), придётся доустанавливать их отдельно.