Proyectos de C/C++ y sistemas de compilación en Visual Studio

Puede usar Visual Studio para editar y compilar cualquier código base de C++ con compatibilidad completa con IntelliSense sin tener que convertir ese código en un proyecto de Visual Studio ni compilar con el conjunto de herramientas de MSVC. Por ejemplo, puede editar un proyecto de CMake multiplataforma en Visual Studio en una máquina Windows y, a continuación, compilarlo para Linux con g++ en una máquina remota de Linux.

Compilación de C++

Compilar un programa de C++ significa compilar el código fuente de uno o más archivos y, a continuación, vincular esos archivos a un archivo ejecutable (.exe), una biblioteca de carga dinámica (.dll) o una biblioteca estática (.lib).

La compilación básica de C++ implica tres pasos principales:

  • El preprocesador de C++ transforma todas las directivas y las definiciones de macro en cada archivo de código fuente. Esto crea una unidad de traducción.
  • El compilador de C++ compila cada unidad de traducción en archivos objeto (.obj) y aplica las opciones del compilador que se han establecido.
  • El enlazador combina los archivos objeto en un único archivo ejecutable y aplica las opciones del enlazador que se han establecido.

Conjunto de herramientas de MSVC

El compilador de C++ de Microsoft, el enlazador, las bibliotecas estándar y las utilidades relacionadas componen el conjunto de herramientas del compilador de MSVC (también denominado cadena de herramientas o "herramientas de compilación"). Se incluye en Visual Studio. También puede descargar y usar el conjunto de herramientas de línea de comandos como un paquete independiente gratuito. Para más información, consulte las herramientas de compilación para Visual Studio en la página de descargas de Visual Studio.

Puede compilar programas simples invocando al compilador de MSVC (cl.exe) directamente desde la línea de comandos. El siguiente comando acepta un archivo de código fuente único e invoca a cl.exe para crear un ejecutable llamado hello.exe:

cl /EHsc hello.cpp

Aquí el compilador (cl.exe) invoca automáticamente al preprocesador de C++ y al enlazador para generar el archivo de salida final. Para obtener más información, vea el artículo sobre cómo compilar en la línea de comandos.

Proyectos y sistemas de compilación

La mayoría de los programas reales usan algún tipo de sistema de compilación para administrar las complejidades de la compilación de varios archivos de código fuente para varias configuraciones (depuración frente a versión), varias plataformas (x86, x64, ARM, etc.), pasos de compilación personalizados e incluso varios ejecutables que deben compilarse en un orden determinado. La configuración se realiza en un archivo de configuración de compilación, y el sistema de compilación acepta ese archivo como entrada antes de invocar al compilador. El conjunto de archivos de código fuente y los archivos de configuración de compilación necesarios para compilar un archivo ejecutable forman lo que se denomina un proyecto.

En la lista siguiente se muestran varias opciones para los proyectos de C++ de Visual Studio:

  • Cree un proyecto de Visual Studio con el IDE de Visual Studio y configúrelo mediante páginas de propiedades. Los proyectos de Visual Studio generan programas que se ejecutan en Windows. Para obtener información general, vea Compilar y generar en Visual Studio en la documentación de Visual Studio.

  • Abra una carpeta que contenga un archivo CMakeLists.txt. La compatibilidad con CMake está integrada en Visual Studio. Puede usar el IDE para editar, probar y depurar sin modificar los archivos CMake de cualquier manera. Esto le permite trabajar en el mismo proyecto de CMake que otros usuarios que podrían usar editores diferentes. CMake es el método recomendado para el desarrollo multiplataforma. Para obtener más información, consulte el artículo sobre los proyectos de CMake.

  • Abra una carpeta separada de archivos de código fuente sin un archivo de proyecto. Visual Studio usará la heurística para compilar los archivos. Se trata de una manera fácil de compilar y ejecutar pequeñas aplicaciones de consola. Para obtener más información, vea el artículo sobre los proyectos Abrir carpeta.

  • Abra una carpeta que contenga un archivo Make o cualquier otro archivo de configuración del sistema de compilación. Puede configurar Visual Studio para que invoque cualquier comando de compilación arbitrario agregando archivos JSON a la carpeta. Para obtener más información, vea el artículo sobre los proyectos Abrir carpeta.

  • Abra un archivo Make de Windows en Visual Studio. Para obtener más información, vea Referencia de NMAKE.

MSBuild desde la línea de comandos

Puede invocar a MSBuild desde la línea de comandos pasándole un archivo .vcxproj junto con las opciones de la línea de comandos. Este enfoque exige una buena comprensión de MSBuild y solo se recomienda en caso necesario. Para obtener más información, vea MSBuild.

En esta sección

Proyectos de Visual Studio
Cómo crear, configurar y compilar proyectos de C++ en Visual Studio mediante su sistema de compilación nativo (MSBuild).

Proyectos de CMake
Cómo programar, compilar e implementar proyectos de CMake en Visual Studio.

Proyectos Abrir carpeta
Cómo usar Visual Studio para programar, compilar e implementar proyectos de C++ basados en cualquier sistema de compilación arbitrario o en ningún sistema de compilación en absoluto.

Versiones de lanzamiento
Cómo crear y solucionar problemas de compilaciones de versión optimizadas para su implementación en usuarios finales.

Uso del conjunto de herramientas de MSVC desde la línea de comandos
Describe cómo usar el compilador de C/C++ y las herramientas de compilación directamente desde la línea de comandos en lugar de usar el IDE de Visual Studio.

Creación de archivos DLL en Visual Studio
Cómo crear, depurar e implementar archivos DLL (bibliotecas compartidas) de C/C++ en Visual Studio.

Tutorial: Creación y uso de una biblioteca estática
Cómo crear un archivo binario .lib.

Compilación de aplicaciones aisladas y ensamblados simultáneos de C/C++
Se describe el modelo de implementación de aplicaciones de escritorio de Windows según los conceptos de aplicaciones aisladas y ensamblados en paralelo.

Configuración de proyectos de C++ para destinos x64 de 64 bits
Cómo establecer como destino hardware x64 de 64 bits con las herramientas de compilación de MSVC.

Configuración de proyectos de C++ para procesadores ARM
Cómo usar las herramientas de compilación de MSVC para establecer como destino hardware ARM.

Optimizar el código
Cómo optimizar el código de varias maneras, incluidas optimizaciones guiadas por programas.

Configuración de programas para Windows XP
Cómo establecer como destino Windows XP con las herramientas de compilación de MSVC.

Referencia de compilación de C/C++
Contiene vínculos a artículos de referencia sobre cómo compilar programas en C++, sobre las opciones de compilador y vinculador, y sobre otras herramientas de compilación.