1 votos

Opción no disponible sólo en Apple clang; ¿diferencia de versión?

Quiero usar clang La opción de -ffile-prefix-map . Esta opción suele estar disponible desde Clang 10 .

De hecho, si consigo una imagen Docker con clang (por ejemplo docker pull silkeh/clang:10 ), puedo ejecutarlo sin problemas:

clang -ffile-prefix-map=a=b

Sin embargo, el mismo comando en mi MacOS 10.15.7 da como resultado error: unknown argument: '-ffile-prefix-map=a=b' . Si ejecuto clang --version me sale:

Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Esto parece sugerir que tengo Clang 11, que debe tienen la opción.

¿Es esto una peculiaridad de Clang de Apple, o estoy leyendo mal su versión? ¿Existe alguna tabla que muestre las versiones coincidentes entre ambos Clangs, lo que explicaría el error?

0 votos

1 votos

Clang --help ofrece una lista de las opciones de línea de comandos y (clang-1205.0.22.11) tiene esa opción

4voto

awy Puntos 500

En efecto, se trata de una diferencia entre LLVM clang https://github.com/llvm/llvm-project y Apple Clang https://github.com/apple/llvm-project/ .

Apple Clang 12+ soporta esta bandera, según creo.

Para comprobar si una bandera es compatible, puede escribir un archivo C con una función principal vacía y compilarla con la bandera de interés, y -Wno-error . Si sale con un estado distinto de cero, la bandera no es compatible.

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