Share via


Compatibilidad con Clang/LLVM en proyectos de Visual Studio

La compatibilidad con Clang y LLVM para proyectos de CMake y MSBuild está disponible en Visual Studio 2019 y Visual Studio 2022.

Puede usar la versión 16.2 de Visual Studio 2019 y otras posteriores, con Clang y LLVM para editar, crear y depurar proyectos de C++ en Visual Studio (MSBuild) que tengan como destino Windows o Linux.

Instalación

Para obtener la mejor compatibilidad con el IDE de Visual Studio, se recomienda usar las herramientas más recientes del compilador de Clang para Windows. Si aún no tiene las herramientas, puede instalarlas mediante el Instalador de Visual Studio. Para ello, elija C++ Clang tools for Windows (Herramientas de Clang en C++ para Windows) en los componentes opcionales de Desktop development with C++ (Desarrollo para el escritorio con C++). Es posible que prefiera usar una instalación de Clang existente en la máquina; si es así, elija C++ Clang-cl for v142 build tools (Herramientas de compilación de Clang-cl en C++ para v142) o C++ Clang-cl for v143 build tools (Herramientas de compilación de Clang-cl en C++ para v143).

Instalación

Para obtener la mejor compatibilidad con el IDE de Visual Studio, se recomienda usar las herramientas más recientes del compilador de Clang para Windows. Si aún no tiene las herramientas, puede instalarlas mediante el Instalador de Visual Studio. Para ello, elija C++ Clang tools for Windows (Herramientas de Clang en C++ para Windows) en los componentes opcionales de Desktop development with C++ (Desarrollo para el escritorio con C++). Si prefiere usar una instalación de Clang existente en su máquina, elija MSBuild support for LLVM (clang-cl) toolset (Compatibilidad de MSBuild con el conjunto de herramientas de LLVM (clang-cl)).

La biblioteca estándar de Microsoft C++ requiere Clang 8.0.0 como mínimo.

Captura de pantalla del instalador de Visual Studio 2019

La pestaña Componentes individuales está seleccionada en el instalador. Compilador de Clang en C++ para Windows está seleccionado. Herramientas de compilación de Clang-cl en C++ para v142 (x64/x86) también está seleccionado.

Captura de pantalla del instalador de Visual Studio 2022.

La pestaña Componentes individuales está seleccionada en el instalador. Compilador de Clang en C++ para Windows está seleccionado. Compatibilidad de MSBuild con el conjunto de herramientas de LLVM (clang-cl) también está seleccionado.

Las versiones posteriores de Visual Studio proporcionan versiones más recientes del conjunto de herramientas Clang. La versión empaquetada de Clang se actualiza automáticamente para mantenerse al día con las actualizaciones de la implementación de Microsoft de la biblioteca estándar. Por ejemplo, la versión 16.11 de Visual Studio 2019 incluye Clang v12.

Configuración de un proyecto de Windows para usar herramientas de Clang

Para configurar un proyecto de Visual Studio para que use Clang, para ello, haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones y elija Propiedades. Normalmente, primero debe elegir Todas las configuraciones en la parte superior del cuadro de diálogo. A continuación, en General>Conjunto de herramientas de la plataforma, elija LLVM (clang-cl) y, a continuación, Aceptar.

Captura de pantalla del cuadro de diálogo Páginas de propiedades del proyecto de Visual Studio.

La página de propiedades del proyecto está abierta en la página Propiedades de configuración > General. La lista desplegable Conjunto de herramientas de la plataforma está seleccionada y la opción LLVM (clang-cl) también.

Si usa las herramientas de Clang que se incluyen con Visual Studio, no es necesario que realice ningún paso adicional. En los proyectos de Windows, Visual Studio invoca a Clang de forma predeterminada en el modo clang-cl y lo vincula con la implementación de Microsoft de la biblioteca estándar. De forma predeterminada, clang-cl.exe se encuentra en *%VCINSTALLDIR%\Tools\Llvm\bin\* y en *%VCINSTALLDIR%\Tools\Llvm\x64\bin\*.

Si usa una instalación personalizada de Clang, puede cambiar el valor de la propiedad LLVMInstallDir. Para obtener más información, consulte la sección Establecimiento de una ubicación de LLVM personalizada.

Configuración de un proyecto de Linux para usar herramientas de Clang

En el caso de los proyectos de Linux, Visual Studio usa el front-end de Clang compatible con GCC. Las propiedades del proyecto y casi todas las marcas del compilador son idénticas.

Para configurar un proyecto de Linux en Visual Studio para que use Clang:

  1. Haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones y elija Propiedades.
  2. Normalmente, primero debe elegir Todas las configuraciones en la parte superior del cuadro de diálogo.
  3. En General>Conjunto de herramientas de la plataforma, seleccione Clang para Subsistema de Windows para Linux si usa Subsistema de Windows para Linux (WSL). Seleccione Clang para Linux remoto si usa una máquina remota o una máquina virtual.
  4. Haga clic en Aceptar.

Captura de pantalla del cuadro de diálogo Páginas de propiedades del proyecto de Visual Studio 2019

La página de propiedades del proyecto está abierta en la página Propiedades de configuración > General. El conjunto de herramientas de la plataforma está seleccionado y, en la lista de opciones, LLVM (clang- c l) también.

En Linux, Visual Studio usa de forma predeterminada la primera ubicación de Clang que encuentra en la propiedad de entorno PATH. Si usa una instalación de Clang personalizada, debe cambiar el valor de la propiedad LLVMInstallDir, o bien indicar la ruta de acceso en Proyecto>Propiedades>Propiedades de configuración>Directorios de VC++>Directorios ejecutables. Para obtener más información, consulte la sección Establecimiento de una ubicación de LLVM personalizada.

Establecimiento de una ubicación de LLVM y de un conjunto de herramientas personalizados

Para establecer una ruta de acceso personalizada a LLVM y una versión personalizada del conjunto de herramientas de LLVM para uno o varios proyectos, cree un archivo Directory.build.props. Después, agregue el archivo a la carpeta raíz de cualquier proyecto. Puede agregarlo a la carpeta raíz de la solución para aplicarlo a todos los proyectos de la solución. El archivo debe tener el siguiente aspecto (pero use su ruta de LLVM y el número de versión reales):

<Project>
  <PropertyGroup>
    <LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
    <LLVMToolsVersion>15.0.0</LLVMToolsVersion>
  </PropertyGroup>
</Project>

Establecimiento de una versión personalizada del conjunto de herramientas de LLVM en el entorno de desarrollo integrado (IDE)

A partir de Visual Studio 2019, versión 16.9, puede establecer una versión personalizada del conjunto de herramientas para LLVM en Visual Studio. Para establecer esta propiedad en un proyecto:

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, consulte Establecimiento de las propiedades del compilador de C++ y la compilación.

  2. Seleccione la página de propiedades Propiedades de configuración>General.

  3. Modifique la propiedad Conjunto de herramientas de la plataforma a LLVM (clang-cl), si aún no está establecida. Haga clic en Aplicar para guardar los cambios.

  4. Seleccione la página Propiedades de configuración>Avanzado.

  5. Modifique la propiedad LLVM Toolset Version (Versión del conjunto de herramientas de LLVM) para establecer su versión preferida y, después, elija Aceptar para guardar los cambios.

La propiedad LLVM Toolset Version (Versión del conjunto de herramientas de LLVM) solo aparece cuando se selecciona el conjunto de herramientas de la plataforma de LLVM.

Cuando se agrega un archivo Directory.build.props a un proyecto o solución, la configuración aparece como valor predeterminado en el cuadro de diálogo Páginas de propiedades del proyecto. Aun así, los cambios en estas propiedades en Visual Studio invalidan la configuración del archivo Directory.build.props.

Establecimiento de propiedades, edición, compilación y depuración

Después de establecer una configuración de Clang, vuelva a hacer clic con el botón derecho en el nodo del proyecto y elija Volver a cargar el proyecto. Ahora puede compilar y depurar el proyecto con las herramientas de Clang. Visual Studio detecta que está usando el compilador de Clang y proporciona IntelliSense, resaltado, navegación y otras características de edición. Los errores y las advertencias se muestran en Ventana de salida. Las páginas de propiedades del proyecto para una configuración de Clang son similares a las de MSVC. Aun así, algunas características que dependen del compilador, como "Editar y continuar", no están disponibles para las configuraciones de Clang. Puede establecer una opción del vinculador o del enlazador Clang que no esté disponible en las páginas de propiedades. Agréguela manualmente en las páginas de propiedades en Propiedades de configuración>C/C++ (o Enlazador)>Línea de comandos>Opciones adicionales.

Al depurar, puede usar puntos de interrupción, visualización de datos y de la memoria, y la mayoría del resto de características de depuración.

Captura de pantalla de Visual Studio depurando una aplicación de ejemplo

La parte de la aplicación que está visible crea un vector de cadena y agrega algunas cadenas a ella. La ejecución se ha detenido en un punto de interrupción del código: v.push_back("Clang/LLVM");