Tutorial: Compilar un programa de C en la línea de comandos

Visual Studio Build Tools incluye un compilador de C que puede usar para crear desde programas básicos de la consola hasta aplicaciones de escritorio de Windows completas, aplicaciones móviles y mucho más. Microsoft C/C++ (MSVC) es un compilador de C y C++ que, en sus versiones más recientes, se ajusta a algunos de los estándares más recientes del lenguaje C, incluidos C11 y C17.

En este tutorial, aprenderá a crear un programa de consola de C básico de estilo "Hola mundo" con un editor de texto y, luego, lo compilará en la línea de comandos. Si prefiere trabajar en C++ en la línea de comandos, vea Tutorial: Compilar un programa nativo de C++ en la línea de comandos. Si quiere probar el IDE de Visual Studio en lugar de usar la línea de comandos, vea Tutorial: Trabajar con proyectos y soluciones (C++) o Usar el IDE de Visual Studio para el desarrollo de escritorio de C++.

Requisitos previos

Para completar este tutorial, debe tener instalado Visual Studio o Build Tools para Visual Studio, así como carga de trabajo opcional Desarrollo para el escritorio con C++.

Visual Studio es un eficaz entorno de desarrollo integrado que admite un editor con funciones completas, administradores de recursos, depuradores y compiladores para varios lenguajes y plataformas. Para obtener información sobre estas características y cómo descargar e instalar Visual Studio, incluida la edición gratuita de Visual Studio Community, consulte Instalar Visual Studio.

La versión de Build Tools para Visual Studio solo instala el conjunto de herramientas de línea de comandos, los compiladores, las herramientas y las bibliotecas que necesita para compilar programas de C y C++. Resulta perfecta para laboratorios de compilación o ejercicios en aulas, y se instala con relativa rapidez. Para instalar solo las herramientas de línea de comandos, descargue Build Tools para Visual Studio en la página de descargas de Visual Studio y ejecute el instalador. En el instalador de Visual Studio, seleccione la carga de trabajo Desarrollo para el escritorio con C++ (en versiones anteriores de Visual Studio, seleccione la carga de trabajo Herramientas de compilación de C++) y seleccione Instalar.

Cuando haya instalado las herramientas, existe otra herramienta que usará para compilar un programa de C o C++ en la línea de comandos. MSVC tiene requisitos complejos para que el entorno de línea de comandos busque las herramientas, los encabezados y las bibliotecas que usa. No se puede usar MSVC en una ventana del símbolo del sistema sin formato sin cierta preparación. Necesita una ventana del símbolo del sistema para desarrolladores, que es una ventana normal del símbolo del sistema que tiene configuradas todas las variables de entorno necesarias. Afortunadamente, Visual Studio instala accesos directos para que pueda iniciar símbolos del sistema para desarrolladores con el entorno configurado para compilaciones de línea de comandos. Desafortunadamente, los nombres de los accesos directos del símbolo del sistema para desarrolladores y dónde se encuentran son diferentes en casi todas las versiones de Visual Studio y en versiones diferentes de Windows. La primera tarea del tutorial consiste en encontrar el acceso directo adecuado que se va a usar.

Nota:

Un acceso directo del símbolo del sistema para desarrolladores establece automáticamente las rutas de acceso correctas para el compilador y las herramientas, y para los encabezados y las bibliotecas necesarios. Algunos de estos valores son diferentes para cada configuración de compilación. Debe establecer por su cuenta estos valores de entorno si no usa uno de los accesos directos. Para obtener más información, vea Usar el conjunto de herramientas de MSVC desde la línea de comandos. Dado que el entorno de compilación es complejo, se recomienda encarecidamente usar un acceso directo del símbolo del sistema para desarrolladores, en lugar de crear uno propio.

Estas instrucciones varían según la versión de Visual Studio que use. Para ver la documentación de su versión preferida de Visual Studio, use el control de selector Versión. Se encuentra en la parte superior de la tabla de contenido de esta página.

Apertura de un símbolo del sistema para desarrolladores en Visual Studio 2022

Si ha instalado Visual Studio 2022 en Windows 10 o una versión posterior, abra el menú Inicio y elija Todas las aplicaciones. A continuación, desplácese hacia abajo y abra la carpeta Visual Studio 2022 (no la aplicación Visual Studio 2022). Elija Símbolo del sistema para desarrolladores de VS 2022 para abrir la ventana del símbolo del sistema.

Apertura de un símbolo del sistema para desarrolladores en Visual Studio 2019

Si ha instalado Visual Studio 2019 en Windows 10 o una versión posterior, abra el menú Inicio y elija Todas las aplicaciones. Después, desplácese hacia abajo y abra la carpeta Visual Studio 2019 (no la aplicación Visual Studio 2019). Elija Símbolo del sistema para desarrolladores de VS 2019 para abrir la ventana del símbolo del sistema.

Apertura de un símbolo del sistema para desarrolladores en Visual Studio 2017

Si ha instalado Visual Studio 2017 en Windows 10 o una versión posterior, abra el menú Inicio y elija Todas las aplicaciones. Después, desplácese hacia abajo y abra la carpeta Visual Studio 2017 (no la aplicación Visual Studio 2017). Elija Símbolo del sistema para desarrolladores de VS 2017 para abrir la ventana del símbolo del sistema.

Apertura de un símbolo del sistema para desarrolladores en Visual Studio 2015

Si ha instalado Microsoft Visual C++ Build Tools 2015 en Windows 10 o una versión posterior, abra el menú Inicio y elija Todas las aplicaciones. A continuación, desplácese hacia abajo y abra la carpeta Visual C++ Build Tools. Elija Símbolo del sistema de las herramientas nativas x86 de Visual C++ 2015 para abrir la ventana del símbolo del sistema.

Si usa una versión diferente de Windows, busque en el menú Inicio o en la página de inicio una carpeta de herramientas de Visual Studio que contenga un acceso directo del símbolo del sistema para desarrolladores. También puede usar la función de búsqueda de Windows para buscar "símbolo del sistema para desarrolladores" y elegir uno que coincida con la versión instalada de Visual Studio. Use el acceso directo para abrir la ventana del símbolo del sistema.

Después, compruebe que el símbolo del sistema para desarrolladores está configurado correctamente. En la ventana del símbolo del sistema, escriba cl (o CL; la distinción entre mayúsculas y minúsculas no importa en el nombre del compilador, pero sí en las opciones del compilador). El resultado deberá ser ahora similar a esto:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

Puede haber diferencias en el directorio o los números de versión actuales según la versión de Visual Studio y de las actualizaciones instaladas. Si la salida anterior es similar a lo que ve, está listo para compilar programas de C o C++ en la línea de comandos.

Nota:

Si recibe un error que indica que "'cl' no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable", un error C1034 o un error LNK1104 al ejecutar el comando cl, significa que no está usando un símbolo del sistema para desarrolladores o que hay algún problema con la instalación de Visual Studio. Debe corregir este error para poder continuar.

Si no encuentra el acceso directo del símbolo del sistema para desarrolladores, o si recibe un mensaje de error al escribir cl, es posible que la instalación de Visual Studio tenga un problema. Si usa Visual Studio 2017 o una versión posterior, pruebe a instalar de nuevo la carga de trabajo Desarrollo para el escritorio con C++ en el instalador de Visual Studio. Para obtener más información, consulte Instalación de compatibilidad con C++ en Visual Studio. También puede volver a instalar Build Tools desde la página de descargas de Visual Studio. No pase a la sección siguiente hasta que el comando cl funcione. Para obtener más información sobre cómo instalar y solucionar problemas de Visual Studio, vea Instalación de Visual Studio.

Nota:

En función de la versión de Windows del equipo y de la configuración de seguridad del sistema, es posible que deba hacer clic con el botón derecho para abrir el menú contextual del acceso directo del símbolo del sistema para desarrolladores y, después, elegir Ejecutar como administrador para compilar y ejecutar correctamente el programa que se crea siguiendo este tutorial.

Creación de un archivo de código fuente de C y compilación en la línea de comandos

  1. En la ventana del símbolo del sistema para desarrolladores, escriba cd c:\ para cambiar el directorio de trabajo actual a la raíz de la unidad C:. Después, escriba md c:\hello para crear un directorio y cd c:\hello para cambiar a ese directorio. Este directorio contendrá el archivo de código fuente y el programa compilado.

  2. Escriba notepad hello.c en el símbolo del sistema para desarrolladores. En el cuadro de diálogo de alerta del Bloc de notas que aparece, elija para crear un archivo hello.c en el directorio de trabajo.

  3. En el Bloc de notas, escriba las líneas de código siguientes:

    #include <stdio.h>
    
    int main()
    {
        printf("Hello, World! This is a native C program compiled on the command line.\n");
        return 0;
    }
    
  4. En la barra de menús del Bloc de notas, elija Archivo >Guardar para guardar hello.c en el directorio de trabajo.

  5. Cambie a la ventana del símbolo del sistema para desarrolladores. Escriba dir en el símbolo del sistema para mostrar el contenido del directorio c:\hello. Debería ver el archivo de código fuente hello.c en la lista de directorios, con un aspecto similar al siguiente:

    C:\hello>dir
     Volume in drive C has no label.
     Volume Serial Number is CC62-6545
    
     Directory of C:\hello
    
    10/02/2017  03:46 PM    <DIR>          .
    10/02/2017  03:46 PM    <DIR>          ..
    10/02/2017  03:36 PM               143 hello.c
                   1 File(s)            143 bytes
                   2 Dir(s)  514,900,566,016 bytes free
    
    

    Las fechas y otros detalles serán distintos en su equipo. Si no ve el archivo de código fuente hello.c, asegúrese de que ha cambiado al directorio c:\hello creado y, en el Bloc de notas, compruebe que ha guardado el archivo de código fuente en este directorio. Asegúrese también de que ha guardado el código fuente con una extensión de nombre de archivo .c, no una extensión .txt.

  6. Para compilar el programa, escriba cl hello.c en el símbolo del sistema para desarrolladores.

    Puede ver el nombre del programa ejecutable (hello.exe) en las líneas de información de salida que muestra el compilador:

    c:\hello>cl hello.c
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    hello.c
    Microsoft (R) Incremental Linker Version 14.10.25017.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    /out:hello.exe
    hello.obj
    

    Nota:

    Si obtiene un error como "'cl' no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable", un error C1034 o un error LNK1104, el símbolo del sistema para desarrolladores no está correctamente configurado. Para obtener información sobre cómo corregir este problema, vuelva a la sección Apertura de un símbolo del sistema para desarrolladores.

    Si recibe otra advertencia o error del compilador o del enlazador, revise el código fuente para corregir los errores, guárdelo y vuelva a ejecutar el compilador. Para obtener información sobre errores específicos, use el cuadro de búsqueda de la parte superior de esta página para buscar el número de error.

  7. Para ejecutar el programa, escriba hello en el símbolo del sistema.

    El programa muestra este texto y, a continuación, se cierra:

    Hello, World! This is a native C program compiled on the command line.
    

    Enhorabuena, ha compilado y ejecutado un programa de C con la línea de comandos.

Pasos siguientes

Este ejemplo "Hola mundo" es el programa de C más básico que se puede crear. Los programas reales contienen archivos de encabezado y más archivos de código fuente, vinculan a bibliotecas y llevan a cabo un trabajo útil.

Puede seguir los pasos de este tutorial para crear su propio código de C, en lugar de escribir el del ejemplo que se muestra. También puede crear muchos programas de ejemplo de código de C que encontrará en otras partes. Para compilar un programa que tiene más archivos de código fuente, escríbalos todos en la línea de comandos, de esta forma:

cl file1.c file2.c file3.c

El compilador genera un programa llamado file1.exe. Para cambiar el nombre a program1.exe, agregue una opción de enlazador /out:

cl file1.c file2.c file3.c /link /out:program1.exe

Para detectar más errores de programación de forma automática, se recomienda compilar mediante la opción de nivel de advertencia /W3 o /W4:

cl /W4 file1.c file2.c file3.c /link /out:program1.exe

El compilador (cl.exe) tiene muchas más opciones que se pueden aplicar para compilar, optimizar, depurar y analizar el código. Para obtener una lista rápida, escriba cl /? en el símbolo del sistema para desarrolladores. También puede compilar y vincular por separado, así como aplicar las opciones del enlazador en escenarios de compilación más complejos. Para obtener más información sobre el uso y las opciones del compilador y del enlazador, vea Referencia de compilación de C/C++.

Puede usar NMAKE y archivos Make, o MSBuild y archivos del proyecto, para configurar y compilar proyectos más complejos en la línea de comandos. Para obtener más información sobre el uso de estas herramientas, consulte Referencia de NMAKE y MSBuild.

Los lenguajes C y C++ son similares, pero no idénticos. El compilador de Microsoft C/C++ (MSVC) usa una regla básica para determinar qué lenguaje se usa al compilar el código. De forma predeterminada, el compilador de MSVC trata todos los archivos que finalizan en .c como código fuente de C, y todos los archivos que finalizan en .cpp como código fuente de C++. Para hacer que el compilador trate todos los archivos como C con independencia de la extensión del nombre de archivo, use la opción /TC del compilador.

MSVC cumple de forma predeterminada los estándares ANSI C89 e ISO C99, pero no es totalmente conforme. En la mayoría de los casos, el código de C portable se compilará y se ejecutará según lo previsto. El compilador proporciona compatibilidad opcional con los cambios en ISO C11/C17. Para compilar con la compatibilidad con C11/C17, use la marca /std:c11 o /std:c17. del compilador. Para la compatibilidad con C11 y C17, se requiere Windows SDK 10.0.20201.0 o posterior. Se recomienda Windows SDK 10.0.22000.0 o una versión posterior. Puede descargar el SDK más reciente desde la página Windows SDK. Para obtener más información e instrucciones sobre cómo instalar y usar este SDK para el desarrollo de C, vea Instalación de la compatibilidad con C11 y C17 en Visual Studio.

Ciertas funciones de biblioteca y nombres de función POSIX están en desuso en MSVC. Las funciones se admiten, pero los nombres preferidos han cambiado. Para obtener más información, vea Características de seguridad de CRT y Advertencia del compilador (nivel 3) C4996.

Consulte también

Tutorial: Crear un programa de C++ estándar (C++)
Referencia del lenguaje C
Proyectos y sistemas de compilación
Compatibilidad