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

Visual C++ 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.

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, consulte 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 desarrollo de escritorio de C++.

Requisitos previos

Para completar este tutorial, debe haber instalado Visual Studio y los componentes de Visual C++ opcionales, o bien Build Tools para Visual Studio.

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 de las herramientas de compilación de C++ y haga clic en Instalar.

Antes de compilar un programa de C o C++ en la línea de comandos, debe comprobar que las herramientas están instaladas y que puede acceder a ellas desde la línea de comandos. Visual C++ 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 Visual C++ 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 C++ 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 C++ 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, así como para los encabezados y 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 de Visual C++ está configurado correctamente. En la ventana del símbolo del sistema, escriba cl y compruebe que la salida es similar a la siguiente:

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, en función de la versión de Visual C++ 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 como "'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 usa un símbolo del sistema para desarrolladores o que hay algún problema con la instalación de Visual C++. 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 C++ 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 Bloc de notas de alertas que aparece, elija para crear un nuevo archivo 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 Bloc de notas de menús, elija Guardararchivo para guardar 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", C1034 o 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 archivos de código fuente adicionales, 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 del 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 las opciones y el uso del compilador y del vinculador, 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 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.

Vea también

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