2 votos

¿Por qué brew no enlaza simbólicamente lld en /usr/local/bin cuando instala llvm?

He instalado llvm con brew install llvm y aparece como instalado con lista de cervezas .

% brew list
... llvm ...
% brew --prefix
/usr/local
% brew --version
Homebrew 3.3.9
...

El lld binario (con varios alias simbólicos) aparece en Cellar. Por ejemplo, ld.lld es un enlace simbólico a lld :

% ls -l /usr/local/Cellar/llvm/13.0.0_2/bin/ld.lld
lrwxr-xr-x  1 chris  admin  3 Sep 24 09:18 /usr/local/Cellar/llvm/13.0.0_2/bin/ld.lld@ -> lld

Cuando ejecuto el ld.lld binario que dice:

% /usr/local/Cellar/llvm/13.0.0_2/bin/ld.lld --version
Homebrew LLD 13.0.0 (compatible with GNU linkers)

Sin embargo, lld o ld.lld no está vinculado a /usr/local/bin o en cualquier lugar estándar que pueda encontrar.

% ls /usr/local/bin/lld
ls: /usr/local/bin/lld: No such file or directory
% ls /usr/local/bin/ld.lld
ls: /usr/local/bin/ld.lld: No such file or directory

No quiero poner un enlace largo y frágil a ld.lld en un script. ¿Alguna idea de por qué no se enlaza en una ubicación estándar?

5voto

Yoan Puntos 1

Puedes encontrar fácilmente la respuesta a tu pregunta con el comando brew info llvm que mostrará esto:

llvm es sólo keg, lo que significa que no se ha enlazado simbólicamente a /usr/local, porque MacOS ya proporciona este software e instalar otra versión en paralelo puede causar todo tipo de problemas.

Si necesitas tener llvm primero en tu PATH, ejecuta echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.zshrc

Para que los compiladores encuentren llvm puede ser necesario establecer: export LDFLAGS="-L/usr/local/opt/llvm/lib" export CPPFLAGS="-I/usr/local/opt/llvm/include"

Suponiendo que ya usas CMake, entonces para añadir información de enlace a tu CMakeLists.txt puede realizarse como se describe a continuación:

1 pregunta .

2 Documentación de CMake .

3 notas introductorias útiles .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X