Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Instalación de una biblioteca
Veremos llvm como ejemplo. Puede instalarlo mediante:
> vcpkg install llvm
o a través de un manifiesto con:
{
"dependencies": ["llvm"]
}
Con llvm instalado ahora, podemos ejecutar:
> installed\x86-windows\bin\llc.exe --version
Vemos:
Registered Targets:
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
Instalación de características adicionales
Pero llvm admite muchos más destinos, de ARM a SPARC a SystemZ. Sin embargo, claramente nuestra instalación actual no incluye ARM como destino; por lo tanto, necesitamos aprender cómo vcpkg nos permite instalar otros destinos de LLVM. El puerto llvm permite esto a través de las características "target-*".
Si hacemos lo siguiente:
> vcpkg search llvm
Podemos ver:
llvm 10.0.0#6 The LLVM Compiler Infrastructure
llvm[clang] Build C Language Family Front-end.
llvm[clang-tools-extra] Build Clang tools.
...
llvm[target-all] Build with all backends.
llvm[target-amdgpu] Build with AMDGPU backend.
llvm[target-arm] Build with ARM backend.
...
Podemos instalar cualquiera de estos destinos mediante la sintaxis install-feature:
> vcpkg install llvm[target-arm] # Installs LLVM with the ARM target
{
"dependencies": [{ "name": "llvm", "features": ["target-arm"] }]
}
No participar en las características predeterminadas
El puerto llvm incluye algunas características predeterminadas que puede que no desee como usuario: por ejemplo, la clang
característica es predeterminada, lo que significa que vcpkg install llvm
también compilará e instalará clang.
Si está escribiendo un compilador que usa LLVM como back-end, es probable que no le interese instalar clang, y podemos hacerlo deshabilitando las características predeterminadas con la "característica" especial core
:
> vcpkg install llvm[core,target-arm] # removing the default-feature with "core" also removes all of the default targets you get
o en archivos de manifiesto:
{
"dependencies": [{
"name": "llvm",
"default-features": false,
"features": ["target-arm"]
}]
}