22 votos

/ usr / include desaparecido en macOS Catalina (con Xcode 11)

Siga hasta el mismo problema en Mojave.

Después de actualizar a macOS Catalina, ninguna de las cabeceras de C se puede encontrar en /usr/include. La razón de esto puede ser encontrado en el Xcode 10 notas de la versión (versión anterior):

Las Herramientas de Línea de Comandos del paquete instala el sistema macOS encabezados dentro del macOS SDK. Software que recopila con el instalado herramientas de búsqueda por encabezados dentro del macOS SDK proporcionado por cualquiera de Xcode en:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk

o las Herramientas de Línea de Comandos en:

/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

[...] Como solución, un paquete extra es siempre lo que va a instalar los encabezados en el sistema base. En una versión futura, este paquete ya no serán proporcionados. [...]

(Vea el enlace a la pregunta de arriba para más detalles sobre esta solución sugerida.)

Al parecer, Apple hizo bien en su amenaza con Xcode 11. ¿Cómo se puede instalar las cabeceras de C a /usr/include en macOS Catalina con Xcode 11?

Contexto: El ruido de python de unión de búsqueda de los archivos de encabezado en /usr/include por defecto. De acuerdo a kkurian la respuesta y el comentario que hice (en respuesta a esta pregunta, hay varias formas de controlar este comportamiento, si es necesario.

Relacionadas con la pregunta: no se Puede compilar el programa en C en un Mac después de la actualización a Mojave.

22voto

Rusan Kax Puntos 148

Establecer el CPATH variable de entorno en la shell (por ejemplo, poner esto en su .zshrc asumiendo que usted está utilizando zsh):

export CPATH=`xcrun --show-sdk-path`/usr/include

Y, a continuación, tratar de construir su proyecto de nuevo.

ACTUALIZACIÓN

El OP relacionadas a cómo instalar los encabezados en /usr/include, no como punto de estruendo para los encabezados, dondequiera que estén.

MacOS Integridad del Sistema de Protección que impide la creación de /usr/include, incluso por la root. Ver esta relacionada con la respuesta.

Si se ha deshabilitado la SIP (no recomendado), entonces me imagino algo como

sudo ln -s `xcrun --show-sdk-path`/usr/include /usr/include

hará el truco.

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