c++ - compilar - ¿Cómo ejecutar clang desde la línea de comandos en Windows?
compilar y ejecutar c en windows (3)
Con Clang para Windows 5.0.0 (64 Bit) y Visual Studio 2017 Community Edition o Build Tools instalado en sus rutas de configuración predeterminadas (incluyendo el último SDK de Windows correspondiente):
C:/>clang --version
clang version 5.0.0 (tags/RELEASE_500/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:/Program Files/LLVM/bin
He hecho buenas experiencias usando clang-cl
( clang-cl.exe
== clang.exe --driver-mode=cl
) que encuentra todas las msvc
biblioteca / inclusión msvc
necesarias automáticamente:
C:/>clang-cl hello.cpp
O para compilar como una aplicación de 32 o 64 bits:
C:/>clang-cl -m32 hello.cpp
C:/>clang-cl -m64 hello.cpp
Alternativa
Consulte el blog de Arvid Gerstmann: Uso de clang en Windows .
Referencias
En la conferencia de Going Native la semana pasada, Chandler Carruth anunció la existencia de binarios precompilados para ejecutar clang en Windows. La misma información está en una entrada de blog here . La audiencia prevista para esto son usuarios de Visual Studio, pero quiero ejecutar el clang desde la línea de comandos.
Ejecuté el instalador y agregué el directorio bin
LLVM a mi ruta, pero cuando intento compilar "Hello world", obtengo esto:
C:/>clang hello.cpp
hello.cpp:1:10: fatal error: ''iostream'' file not found
#include <iostream>
^
1 error generated.
No puedo encontrar información sobre cómo configurar cosas para ejecutar el Clang en Windows, y supongo que después de averiguar cómo decirle a Clang dónde buscar los encabezados de biblioteca estándar, tendré que decirle dónde buscar. para las bibliotecas para enlazar con. ¿Alguien me puede guiar a través de la configuración paso a paso o indicarme un recorrido así?
Esta es una pregunta antigua, y muchas cosas han cambiado desde entonces. Dado que este es un problema común al intentar Clang en Windows, merece una respuesta actualizada.
A partir de 2017, con la compilación LLVM 3.9.1 para Windows, necesitas lo siguiente para poder invocar el clang
desde tu shell.
Herramientas de compilación VC ++
Todavía no tenemos un puerto libc ++ para Windows, por lo que Clang usa las bibliotecas VC ++ y el enlazador VC ++.
Entonces, en primer lugar, necesita las herramientas de creación de VC ++ en su sistema. Tenga en cuenta que ya los tiene instalados si tiene el IDE de Visual C ++.
Variables de entorno
Debes decirle a Clang dónde encontrar las herramientas de construcción y sus bibliotecas.
Opción 1 (vcvarsall.bat)
Esta es la opción más fácil y estándar.
correr
> "%VS140COMNTOOLS%../../VC/vcvarsall.bat" amd64
Reemplazo de amd64
con su arquitectura de destino en Clang, que puede ser x86
, amd64
o arm
. También puede reemplazar %VS140COMNTOOLS%
si tiene una versión diferente del conjunto de herramientas VC ++.
Como método abreviado, puede ejecutar el Símbolo del sistema de Visual C ++ en lugar de cmd+vcvarsall
, ya que debe llamar a este lote para cada símbolo del sistema que abra.
Ahora puedes disfrutar de Clang.
Opción 2 (Manual)
En caso de que no pueda ejecutar vcvarsall.bat
o desee automatizar este proceso, bienvenido, tuve la misma necesidad.
Todas las siguientes variables de entorno se configuran automáticamente mediante vcvarsall.bat
, por lo que puede ejecutar eso y tomar los valores de su máquina desde allí. Daré minas como ejemplos y con la esperanza de que sea lo mismo en otros lugares.
Establezca la variable de entorno INCLUDE
en C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/INCLUDE;C:/Program Files (x86)/Windows Kits/10/include/10.0.10240.0/ucrt;C:/Program Files (x86)/Windows Kits/8.1/include/shared;C:/Program Files (x86)/Windows Kits/8.1/include/um;C:/Program Files (x86)/Windows Kits/8.1/include/winrt;
Establezca LIB
en C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/LIB/amd64;C:/Program Files (x86)/Windows Kits/10/lib/10.0.10240.0/ucrt/x64;C:/Program Files (x86)/Windows Kits/8.1/lib/winv6.3/um/x64;
. ¡Tenga en cuenta los componentes específicos de la arquitectura!
Para las herramientas de compilación, puede tener las herramientas en PATH
o configurar la variable de entorno VCINSTALLDIR
. Clang intentará con ambos, favoreciendo VCINSTALLDIR
.
Establezca VCINSTALLDIR
en %VS140COMNTOOLS%../../VC
o agregue %VS140COMNTOOLS%../../VC/bin/amd64
a su PATH
.
Nota
Todo esto está muy poco documentado, por lo que los requisitos pueden cambiar en cualquier momento, pero el controlador MSVC de Clang está intentando automatizar esto tanto como sea posible, consultando el Registro de Windows y muchos otros trucos, por lo que ya no es necesario nada de esto en el futuro.
Si no estás restringido a usar compiladores de Microsoft. Puedes usar clang con MinGW-w64. Simplemente instale la última versión del binario de llvm para Windows y MinGW-w64 .
Puedes usar el siguiente código para compilar tu archivo fuente
clang++ -target x86_64-pc-windows-gnu test.cc -o test.exe