Error fatal de GCC: stdio.h: No existe tal archivo o directorio
⏰ 5 minutos de lectura
Julio
Estoy tratando de compilar un programa en C en OS X 10.9 con GCC 4.9 (experimental). Por alguna razón, recibo el siguiente error en tiempo de compilación:
gcc: fatal error: stdio.h: No such file or directory
De nuevo, al correr gcc -o ~/hello ~/hello.c, Tengo el mismo error. Estoy usando una versión experimental de gccpero parece inverosímil que hubiera una versión que generara errores al importar stdio. ¿Qué podría estar causando este problema y cómo se puede solucionar?
Puede ver dónde gcc está buscando archivos de encabezado haciendo echo "#include <bogus.h>" | gcc -v -x c - y examinar las rutas de búsqueda.
– Christian Ternus
25 de octubre de 2013 a las 3:53
¡Comando muy útil! no parece stdio.h está en cualquiera de las rutas de búsqueda de GCC.
– Jules
25 de octubre de 2013 a las 3:56
Mavericks ya no tiene una base /usr/include. Debe vincularlo en su lugar desde XCode OS 10.9 SDK.
– Yan Ramin
25 de octubre de 2013 a las 3:57
POR CIERTO, int mainEl primer parámetro de es un int y no int *argc.
– p0lAris
25 de octubre de 2013 a las 3:57
@user2615799 Está en sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
– Yan Ramin
25/10/2013 a las 15:11
amós
Mac OS
También tuve este problema (encontrado a través de los compiladores de Macports). Las versiones anteriores de Xcode le permitían instalar herramientas de línea de comandos a través de xcode/Preferencias, pero xcode5 no ofrece una opción de herramientas de línea de comandos en la GUI, por lo que asumí que ahora se incluía automáticamente. Intenta ejecutar este comando:
xcode-select --install
Si ve un mensaje de error que indica que las herramientas para desarrolladores ya están instaladas (y aún no se pueden encontrar los archivos de encabezado), elimine los existentes para realizar una instalación nueva:
sudo rm -rf /Library/Developer/CommandLineTools
ubuntu
(según esta respuesta)
sudo apt-get install libc6-dev
Linux alpino
(según este comentario)
apk add libc-dev
Si está utilizando Xcode 6 beta 5, este comando podría fallar. En ese caso tienes que hacer sudo xcode-select -s /Applications/Xcode.app. Cuando haya terminado, vuelva a usar sudo xcode-select -s /Applications/Xcode6-Beta5.app.
–Sjors Provoost
07/08/2014 a las 16:54
Guau. Todavía trabajando con Xcode 8.0 y Sierra en 2017.
– usuario124384
22 de abril de 2017 a las 15:45
La guía alpina es extremadamente útil para las imágenes de Docker basadas en la distribución alpina, funciona como se desea
– VanDavv
21 de agosto de 2018 a las 15:31
¿Alguna sugerencia para los usuarios de Windows? tengo este problema en windows
– Ratul Hasan
24 de julio de 2020 a las 5:32
Para usuarios de macOS que todavía tienen problemas después de instalar CLTs stackoverflow.com/questions/63342521/…
– usuario10063119
16 oct 2020 a las 12:48
samshel
Mac OS Mojave
La respuesta aceptada ya no funciona. Al ejecutar el comando xcode-select --install le dice que use “Actualización de software” para instalar actualizaciones.
cd /Library/Developer/CommandLineTools/Packages/
open macOS_SDK_headers_for_macOS_10.14.pkg
Esto abrirá un asistente de instalación.
Actualización 12/2019
Después de actualizar a Mojave 10.15.1, parece que usar xcode-select --install funciona según lo previsto.
La reinstalación de los encabezados también funciona cuando se actualiza a Xcode 10.2.
– Bojan Dimovski
27 de marzo de 2019 a las 12:58
Cuando abro macOS_SDK_headers_for_macOS_10.14.pkg, recibo una advertencia aterradora del instalador: “Este paquete es incompatible con esta versión de macOS y es posible que no se instale”. yo tengo mojave
–Steve Siegel
6 de diciembre de 2019 a las 17:34
@SteveSiegel, ¿qué versión de Mac OS está ejecutando? Actualicé a 10.15.1 y ya no tuve que hacer esta solución. Actualicé mi respuesta para reflejar eso.
– Samshel
7 dic 2019 a las 19:57
“actualizando a Mojave 10.15.1” eso es incorrecto. @SteveSiegel El paquete está en desuso. Se debe utilizar SDKROOT. stackoverflow.com/a/63343829/10063119
– usuario10063119
10 de agosto de 2020 a las 16:37
usuarios de ubuntu:
sudo apt-get install libc6-dev
especialmente los desarrolladores de Ruby que tienen problemas para instalar gem install json -v '1.8.2' en sus máquinas virtuales
Interesante. Gracias. Esta librería también resuelve algunos otros problemas. Recientemente, lo encontré tratando de ejecutar un punto de referencia para petabyet.com (que usa gcc).
– dhaupin
23 de agosto de 2016 a las 18:24
En alpine linux necesitaba apk add libc-dev
– Shadi
28 de enero de 2017 a las 9:29
Sé que mi caso es raro, pero aún así lo agregaré aquí para que alguien lo resuelva más adelante. Tenía un objetivo de módulo del kernel de Linux en mi Makefile e intenté compilar mi programa de espacio de usuario junto con el módulo del kernel que no tiene stdio. Hacerlo un objetivo separado resolvió el problema.
Yo tuve el mismo problema. Instalé “XCode: herramientas de desarrollo” de la tienda de aplicaciones y me solucionó el problema.
Crédito a Yann Ramin por su consejo. Creo que hay una mejor solución con enlaces, pero esto fue fácil y rápido.
¡Buena suerte!
¿Te refieres a Xcode normal? ¿O hay alguna versión especial llamada “XCode: herramientas de desarrollo”? Porque solo veo Xcode normal en la App Store. Por supuesto, esto es 4 años en el futuro desde que se publicó esta respuesta.
– usuario124384
22 de abril de 2017 a las 15:36
¿Te refieres a Xcode normal? ¿O hay alguna versión especial llamada “XCode: herramientas de desarrollo”? Porque solo veo Xcode normal en la App Store. Por supuesto, esto es 4 años en el futuro desde que se publicó esta respuesta.
– usuario124384
22 de abril de 2017 a las 15:36
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
Puede ver dónde gcc está buscando archivos de encabezado haciendo
echo "#include <bogus.h>" | gcc -v -x c -
y examinar las rutas de búsqueda.– Christian Ternus
25 de octubre de 2013 a las 3:53
¡Comando muy útil! no parece
stdio.h
está en cualquiera de las rutas de búsqueda de GCC.– Jules
25 de octubre de 2013 a las 3:56
Mavericks ya no tiene una base /usr/include. Debe vincularlo en su lugar desde XCode OS 10.9 SDK.
– Yan Ramin
25 de octubre de 2013 a las 3:57
POR CIERTO,
int main
El primer parámetro de es un int y no int *argc.– p0lAris
25 de octubre de 2013 a las 3:57
@user2615799 Está en
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
– Yan Ramin
25/10/2013 a las 15:11