He estado usando con éxito gcc en Linux Mint 12. Ahora recibo un error. Recientemente he estado haciendo algunas compilaciones .so e instalé Clang no hace mucho, pero he compilado con éxito desde ambos eventos, así que no estoy seguro de qué ha cambiado. Usé el Administrador de software GUI para eliminar y luego instalar gcc nuevamente, pero los resultados son los mismos:
~/code/c/ut: which gcc
/usr/bin/gcc
~/code/c/ut: gcc -std=c99 -Wall -Wextra -g -c object.c
gcc: error trying to exec 'cc1': execvp: No such file or directory
Respuestas:
Explicación
El mensaje de error nos dijo que
cc1
no se encontró la dependencia del tiempo de compilación (en este caso lo es ), así que todo lo que necesitamos es instalar el paquete apropiado en el sistema (usando el administrador de paquetes // de las fuentes // de otra manera)Que es
cc1
:tomado de esta respuesta por Alan Shutko .
Solución para: Ubuntu / Linux Mint
Solución para: entorno Docker-alpino
Si se encuentra en un entorno docker-alpine , instale el paquete build-base agregando esto a su
Dockerfile
:Mejor nombre de paquete proporcionado por Pablo Castellano . Más detalles aquí .
Si necesita más paquetes para fines de construcción, considere agregar el paquete alpine-sdk :
Tomado de github
Solución para: CentOS / Fedora
Esta respuesta contiene instrucciones para CentOS y Fedora Linux
Solución para: Amazon Linux
Tomado de este comentario por CoderChris
También puede intentar instalar las dependencias perdidas con esto ( aunque se dice que no resuelve el problema ):
Tomado de esta respuesta
fuente
En CentOS o Fedora
fuente
En debian / ubuntu solucioné este problema reinstalando
build-essential
:fuente
Esto se debe a que
gcc
llama a muchos otros ejecutables para completar el procesamiento de la entrada ycc1
no está en la ruta incluida.En tipo de concha
whereis cc1
. Sicc1
se encuentra, es mejor seguir adelante y crear un enlace suave en el directorio degcc
; de lo contrario,cc1
no está instalado y debe instalar gcc-c ++ usando el administrador de paquetes.fuente
ln -s cc cc1
Dado que esto aparece como el primer resultado en Google, solo quería documentar mi experiencia con Amazon Linux. La instalación
gcc-c++.noarch
solucionó el problema:sudo yum install gcc-c++.noarch
Algunas personas también informaron de esta alternativa como solución:
sudo yum install gcc72-c++
fuente
.noarch
ya está instalado.Hoy me encontré con un problema similar: un compañero de trabajo no podía crear su software, pero yo podía hacerlo. Cuando corrió
gcc
no pudo encontrarcc1
.Su ruta ejecutable parecía razonable, pero el hecho de que no pudiera replicar fácilmente la falla sugirió algo en su entorno como la causa.
Finalmente encontramos
GCC_EXEC_PREFIX
definido en su entorno cuál era el culpable y engañosogcc
en la búsquedacc1
. Esto era parte de sus scripts de inicio de shell y estaba destinado a solucionar una limitación en un sistema SPARC / Solaris que ya no está en uso. El problema se resolvió al no configurar esta variable de entorno.http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
fuente
Solucioné este problema instalando explícitamente g ++:
Se encontró un problema en Ubuntu 12.04 al instalar pandas. (Gracias perilbrain.)
fuente
yum install gcc-c++
hizo la solución.fuente
Asegúrese de que su
GCC_EXEC_PREFIX(env)
no se exporta yPATH
se exporta a la cadena de herramientas correcta.fuente
Experimenté esto poco después de compilar e instalar un nuevo y brillante GCC, versión 8.1, en RHEL 7. Al final, terminó siendo un problema de permisos; mi umask raíz fue el culpable. Finalmente encontré
cc1
escondiéndome en/usr/local/libexec
:Sin embargo, los permisos en los directorios que llevan allí no permitían mi cuenta de usuario estándar:
Un rápido recursivo
chmod
para agregar permisos de lectura / ejecución mundial lo solucionó de inmediato:¡Y ahora
gcc
puedo encontrarlocc1
cuando le pido que compile algo!fuente
Este también podría ser el mensaje de error que se muestra si intenta ejecutar binarios gcc de 32 bits en un sistema operativo de 64 bits y falta glibc de 32 bits. Según este archivo Léame : "Para sistemas de 64 bits, se requieren libc y libncurses de 32 bits para ejecutar las herramientas". En este caso, no hay ningún problema con la ruta y cc1 se encuentra realmente, pero se informa que falta como sin glibc de 32 bits.
fuente
Lo que me ayudó fue usar
llvm-gcc
en su lugar:fuente
Solo para documentar mi problema con este problema, aunque parece ser un ejemplo específico de otras respuestas; como relativamente novato, siento que esto podría ayudar a otros.
Solución:
Agregué '/ usr / bin' al comienzo de PATH para una sola sesión de uso
PATH='/usr/path/:$PATH'
y todo comenzó a funcionar bien.Usé gedit para actualizar el PATH de forma permanente, después de asegurarme de que no rompería mis cadenas de herramientas habituales.
Explicación:
Tengo varias cadenas de herramientas instaladas en Ubuntu 14.04LTS y utilizo solo un par de forma regular. Cuando intenté usar gcc desde la línea de comando, el OP me describió el problema. '/ usr / bin' está en la RUTA pero está detrás de las otras ubicaciones de la cadena de herramientas. Resulta que el cc1 para esas otras cadenas de herramientas es incompatible con gcc.
fuente
Solo para complementar la respuesta de @ maxkoryukov con respecto a Alpine.
El equivalente a Debian
build-essential
en Alpine esbuild-base
. De hecho, lo anterioralpine-sdk
depende debuild-base
.fuente
Puede solucionarlo ejecutando esto: En Fedora:
fuente
Experimenté este problema en una instalación razonablemente nueva de Fedora 27. Probé todas las otras sugerencias o sus equivalentes; la instalación de los distintos paquetes decía "ya instalado" o instaló algo nuevo que no ayudó.
Fijo con
fuente
En Scientific Linux 6 (similar a CentOS 6-- SL ahora se reemplaza por CentOS, AIUI), tuve que usar
/usr/sbin/prelink -av -mR
lo que encontré sugerido en https://stelfox.net/blog/2014/08/dependency-prelink-issues/Hasta que hice eso, recibí un error cc1
gcc: error trying to exec 'cc1': execvp: No such file or directory
cuando intenté compilar, y gcc --version reportó 4.2.2 en lugar de 4.4.7, a pesar de que yum reportó esa versión.Puede o no estar relacionado, pero el sistema se había quedado sin espacio en / var
fuente
Está en este paquete (Ubuntu 19.04):
fuente
g++
está bien. O mejor,build-essential
también incluye algunas bibliotecas.En mi raro caso fue
color wrapper
quien echó a perdergcc
. Resuelto al deshabilitar lacw
exclusión de su directorio/usr/libexec/cw
dePATH
la variable de entorno.fuente
¿Por qué pasó esto? Cuando instala una copia nueva de linux, el compilador gcc viene empaquetado con él. Solo contiene los archivos y binarios que se utilizan para ejecutar Linux (para ahorrar espacio y tiempo, obviamente).
¿Cómo resolver este error? Todo lo que necesita es actualizar sus paquetes a través del administrador de paquetes y reinstalar los paquetes esenciales de compilación. Los comandos pueden ser diferentes en diferentes núcleos.
fuente