¿No se compila Rust en Windows? Resolvemos el problema con el linker link.exe

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: Tu primer "Hello, world!" en Rust que no quiere funcionar

\n\n

Acabas de instalar Rust, abriste la terminal, escribiste tu primer código en este elegante y seguro lenguaje, ingresaste cargo run — y de inmediato recibiste una desconcertante línea roja:

\n\n
error: linker `link.exe` not found\n  |\n  = note: The system cannot find the file specified. (os error 2)\n
\n\n

¿Te suena familiar? ¡No entres en pánico! Te has topado con uno de los problemas más comunes entre los principiantes que migran a Rust desde Windows. Este error no es un bug del compilador ni una maldición. Es simplemente un malentendido entre tu nuevo amigo Rust y el sistema operativo. Miles de desarrolladores han pasado por esto en Stack Overflow, y hoy resolveremos esta situación de una vez por todas. Bienvenido al mundo de la programación de sistemas en Windows — aquí se necesita un poco más que solo instalar el lenguaje.

\n\n

¿Por qué Rust no encuentra link.exe? Entendiendo la raíz del problema

\n\n

Para entender por qué ocurre el error linker link.exe not found, debemos mirar bajo el capó del proceso de compilación. Cuando escribes rustc main.rs o cargo build, Rust compila tu código en archivos objeto. Pero aquí no termina todo. Para obtener un archivo ejecutable listo (.exe), estos archivos objeto deben enlazarse (link) entre sí. Este trabajo lo realiza un programa especial — el enlazador.

\n\n

En Windows, el enlazador predeterminado es link.exe del conjunto de herramientas Microsoft Visual C++ (MSVC). Rust, al ser un lenguaje que "se lleva bien" con el compilador del sistema, selecciona por defecto el toolchain MSVC (a menos que hayas especificado lo contrario durante la instalación). El problema es que este enlazador no es parte de Windows. Se distribuye junto con Visual Studio o con el paquete independiente Build Tools for Visual Studio.

\n\n

Punto clave: Rust no puede encontrar link.exe porque simplemente no está instalado en tu computadora, o no está agregado a la variable de entorno del sistema PATH.

\n\n

Lista de verificación rápida: ¿qué pudo haber salido mal?

\n
    \n
  • Instalaste Rust mediante rustup-init.exe y presionaste "Enter" en todas partes. Esto es normal, pero el instalador no instala Visual Studio.
  • \n
  • Tienes instalado Visual Studio Code u otro IDE, pero no Visual Studio. No es lo mismo.
  • \n
  • Elegiste el toolchain GNU durante la instalación. Si es así, necesitas GCC (por ejemplo, a través de MinGW), no MSVC. Pero hoy hablamos del MSVC estándar.
  • \n
\n\n

Solución n.º 1: Instalación de Visual Studio Build Tools (Método recomendado)

\n\n

Esta es la forma más correcta y "nativa" para Windows. Microsoft ofrece un paquete gratuito que incluye solo el compilador y el enlazador — sin la voluminosa IDE.

\n\n
    \n
  1. Descarga el instalador: Ve al sitio web oficial de Microsoft y descarga Build Tools for Visual Studio 2022. Busca "Visual Studio 2022 Build Tools".
  2. \n
  3. Ejecuta la instalación: Ejecuta el archivo descargado vs_BuildTools.exe.
  4. \n
  5. Selecciona los componentes: En el instalador, selecciona la pestaña "Cargas de trabajo" (Workloads). Marca la casilla "Desarrollo de escritorio con C++" (Desktop development with C++).
  6. \n
  7. Instalación: Haz clic en el botón "Instalar" en la esquina inferior derecha. El proceso puede tomar de 10 a 20 minutos, ya que se descargan alrededor de 2-3 GB de datos.
  8. \n
  9. Reinicio (opcional): Después de completar la instalación, reinicia tu computadora para que las variables de entorno se actualicen.
  10. \n
\n\n

Después de esto, abre una nueva terminal y vuelve a intentar compilar tu proyecto:

\n\n
cargo new hello_world                

Blogs

Book Recommendations