TL; DR
Asegúrese de haber descargado el último paquete de 'Herramientas de línea de comandos' y ejecútelo desde un terminal (línea de comandos):
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Para obtener información sobre Catalina, consulte No se puede compilar un programa C en una Mac después de actualizar a Catalina 10.15 .
Extrayendo una respuesta semi-coherente de comentarios bastante extensos ...
Preámbulo
Muy a menudo, xcode-select --install ha sido la solución correcta, pero esta vez no parece ayudar. ¿Has intentado ejecutar la interfaz principal de Xcode GUI? Puede instalar algún software adicional para usted y limpiarlo. Lo hice después de instalar Xcode 10.0, pero hace una semana o más, mucho antes de actualizar a Mojave.
Observo que si su GCC está instalado /usr/local/bin, probablemente no esté usando el GCC de Xcode; que normalmente se instala en/usr/bin .
Yo también he actualizado a macOS 10.14 Mojave y Xcode 10.0. Sin embargo, tanto el sistema /usr/bin/gcccomo el sistema /usr/bin/clangfuncionan para mí ( Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0para ambos). Tengo un problema con mi GCC 8.2.0 de fabricación casera que no encuentra encabezados /usr/include, lo cual es paralelo a su problema de /usr/local/bin/gccno encontrar encabezados tampoco.
He hecho un poco de comparación, y mi máquina Mojave no tiene nada /usr/include, pero /usr/bin/clangpuede compilar OK. Un encabezado ( _stdio.hcon guión bajo) estaba en mi viejo /usr/include; falta ahora (de ahí mi problema con GCC 8.2.0). Ejecuté xcode-select --instally dijo " xcode-select: note: install requested for command line developer tools" y luego ejecuté un instalador de GUI que me mostró una licencia que acepté, y descargó e instaló las herramientas de línea de comandos, o eso afirmaba.
Luego ejecuté Xcode GUI (espacio de comando, Xcode, return) y dijo que necesitaba instalar más software, pero aún no /usr/include. Pero puedo compilar con /usr/bin/clangy /usr/bin/gcc, y la -vopción sugiere que están usando
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Solución de trabajo
Entonces Maxxx notó :
He encontrado un camino. Si estamos utilizando Xcode 10, notará que si navega hasta el /usren el Finder, ya no verá una carpeta llamada 'incluir', por lo que el terminal se queja de la ausencia de los archivos de encabezado que contiene la carpeta 'incluir'. En las Notas de la versión de Xcode 10.0 , dice que hay un paquete:
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
y debe instalar ese paquete para tener la /usr/includecarpeta instalada. Entonces deberías ser bueno para ir.
Cuando todo lo demás falla, lea el manual o, en este caso, las notas de la versión. No estoy terriblemente sorprendido de encontrar a Apple queriendo darle la espalda a su herencia Unix, pero estoy decepcionado. Si tienen cuidado, podrían alejarme. Gracias por la información.
Habiendo instalado el paquete usando el siguiente comando en la línea de comando, lo tengo /usr/includenuevamente, y mi GCC 8.2.0 funciona una vez más.
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Descargar herramientas de línea de comandos
Como Vesal señala en un comentario valioso , debe descargar el paquete de herramientas de línea de comandos para Xcode 10.1 en Mojave 10.14, y puede hacerlo desde:
Debe iniciar sesión con un ID de Apple para poder descargar. Cuando haya realizado la descarga, instale el paquete de herramientas de línea de comandos. Luego instale los encabezados como se describe en la sección 'Solución de trabajo'.
Esto funcionó para mí en Mojave 10.14.1. Debo haber descargado esto antes, pero me había olvidado cuando respondí esta pregunta.
Actualice a Mojave 10.14.4 y Xcode 10.2
El o alrededor del 2019-05-17, actualicé a Mojave 10.14.4, y las herramientas de línea de comando Xcode 10.2 también se actualizaron (o las herramientas de línea de comando Xcode 10.1 se actualizaron a 10.2). El opencomando que se muestra arriba corrigió los encabezados faltantes. Todavía puede haber aventuras con la actualización de Xcode principal a 10.2 y luego reinstalar las herramientas de línea de comandos y el paquete de encabezados.
Actualice a Xcode 10.3 (para Mojave 10.14.6)
El 22 de julio de 2019, recibí un aviso a través de la App Store de que la actualización a Xcode 10.3 está disponible y que incluye SDK para iOS 12.4, tvOS 12.4, watchOS 5.3 y macOS Mojave 10.14.6. Lo instalé en una de mis máquinas 10.14.5, lo ejecuté e instalé componentes adicionales como sugería, y parece que se ha quedado /usr/includeintacto.
Más tarde, el mismo día, descubrí que macOS Mojave 10.14.6 también estaba disponible (Preferencias del sistema Update Actualización de software), junto con un paquete de Utilidades de línea de comandos IIRC (se descargó e instaló automáticamente). La instalación de la actualización o / s, una vez más, eliminó /usr/include, pero el opencomando en la parte superior de la respuesta la restableció nuevamente. La fecha que tenía en el archivo para el opencomando fue 2019-07-15.
Actualice a XCode 11.0 (para Catalina 10.15)
La actualización a XCode 11.0 ("incluye Swift 5.1 y SDK para iOS 13, tvOS 13, watchOS 6 y macOS Catalina 10.15") se lanzó 2019-09-21. Me notificaron las 'actualizaciones disponibles', y las descargué e instalé en máquinas que ejecutan macOS Mojave 10.14.6 a través de la aplicación App Store (pestaña de actualizaciones) sin problemas y sin tener que preocuparme /usr/include. Inmediatamente después de la instalación (antes de ejecutar la aplicación en sí), probé una recompilación y me dijeron:
Aceptar la licencia Xcode / iOS requiere privilegios de administrador, ejecute "sudo xcodebuild -license" y vuelva a intentar este comando.
Ejecutar that ( sudo xcodebuild -license) me permitió ejecutar el compilador. Desde entonces, ejecuté la aplicación para instalar los componentes adicionales que necesita; Todavía no hay problema. Queda por ver qué sucede cuando actualizo a Catalina, pero mis máquinas macOS Mojave 10.14.6 están bien por el momento (2019-09-24).
echo "#include <a.h>" | gcc -v -x c -