español compilador cash card gcc

compilador - gcc windows



Error de Gcc: gcc: error al intentar ejecutar ''cc1'': execvp: no existe tal archivo o directorio (16)

Amazon Linux: solucionando el problema de GCC

Dado que esto aparece como el primer resultado en Google, solo quería documentar mi experiencia con Amazon Linux. La instalación de gcc-c++.noarch solucionó el problema:

sudo yum install gcc-c++.noarch

He estado usando gcc con éxito en Linux Mint 12. Ahora recibo un error. Hace poco estuve haciendo algunas construcciones .so e instalé Clang no hace mucho tiempo, pero me he compilado correctamente desde esos dos eventos, por lo que no estoy seguro de qué ha cambiado. Usé el GUI Software Manager para eliminar e 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


1. Explicación

El mensaje de error le indicó que no se encontró la dependencia del tiempo de compilación, por lo que todo lo que necesita es instalar el paquete apropiado en su sistema (utilizando el administrador de paquetes, compilación desde las fuentes o de otra manera)

¿Qué es cc1 ?

cc1 es el comando interno que toma los archivos de lenguaje C preprocesados ​​y los convierte en ensamblado. Es la parte real que compila C. Para C ++, hay cc1plus y otros comandos internos para diferentes idiomas.

tomado de esta respuesta por Alan Shutko .

2. Soluciones

Ubuntu / Linux Mint

sudo apt-get install --reinstall build-essential

Entorno Docker-alpino

Si se encuentra en el entorno docker-alpine , agregue esto:

RUN apk add alpine-sdk

a tu Dockerfile

Tomado de github


Asegúrese de que su GCC_EXEC_PREFIX(env) no se exporte y su PATH se exporte a la cadena de herramientas correcta.


En CentOS o Fedora

yum install gcc-c++


En Scientific Linux 6 (similar a CentOS 6-- SL ahora es reemplazado por CentOS, AIUI), tuve que usar /usr/sbin/prelink -av -mR que encontré sugerido en https://stelfox.net/blog/2014/08/dependency-prelink-issues/

Hasta que lo hice, recibí un error de cc1 gcc: error trying to exec ''cc1'': execvp: No such file or directory cuando intenté compilar, y gcc --version informó 4.2.2 en lugar de 4.4.7, a pesar de eso versión reportada por yum.

Puede o no estar relacionado, pero el sistema se había quedado sin espacio en / var


En debian / ubuntu solucioné este problema reinstalando build-essential :

sudo apt-get update sudo apt-get install --reinstall build-essential


Este podría ser también 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. De acuerdo con este readme : "Para el sistema 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 se encuentra realmente cc1, pero se informa que falta como no hay glibc de 32 bits.


Esto se debe a que gcc llama a muchos otros ejecutables para el procesamiento completo de la entrada y cc1 no está en la ruta incluida.

En tipo de shell: -

whereis cc1

Si se encuentra cc1, mejor adelante y cree un enlace suave en el directorio de gcc; de lo contrario, implica que cc1 no está instalado y debe instalar gcc-c++ utilizando el administrador de paquetes.


Experimenté este problema en una instalación razonablemente nueva de Fedora 27. Intenté todas las otras sugerencias o sus equivalentes; al instalar los diversos paquetes dijo "ya está instalado" o instaló algo nuevo que no ayudó.

Reparado con

# dnf remove gcc # dnf install gcc gcc-c++


Experimenté esto poco después de compilar e instalar un nuevo GCC brillante - versión 8.1 - en RHEL 7. Al final, terminó siendo un problema de permisos; mi raíz umask fue el culpable. Eventualmente encontré cc1 escondido en /usr/local/libexec :

[root@nacelle gdb-8.1]# ls -l /usr/local/libexec/gcc/x86_64-pc-linux-gnu/8.1.0/ | grep cc1 -rwxr-xr-x 1 root root 196481344 Jul 2 13:53 cc1

Sin embargo, los permisos en los directorios que llevaban allí no permitían mi cuenta de usuario estándar:

[root@nacelle gdb-8.1]# ls -l /usr/local/libexec/ total 4 drwxr-x--- 3 root root 4096 Jul 2 13:53 gcc [root@nacelle gdb-8.1]# ls -l /usr/local/libexec/gcc/ total 4 drwxr-x--- 3 root root 4096 Jul 2 13:53 x86_64-pc-linux-gnu [root@nacelle gdb-8.1]# ls -l /usr/local/libexec/gcc/x86_64-pc-linux-gnu/ total 4 drwxr-x--- 4 root root 4096 Jul 2 13:53 8.1.0

Un chmod recursivo rápido para agregar permisos de lectura / ejecución del mundo lo solucionó:

[root@nacelle 8.1.0]# cd /usr/local/libexec [root@nacelle lib]# ls -l | grep gcc drwxr-x--- 3 root root 4096 Jul 2 13:53 gcc [root@nacelle lib]# chmod -R o+rx gcc [root@nacelle lib]# ls -l | grep gcc drwxr-xr-x 3 root root 4096 Jul 2 13:53 gcc

¡Y ahora gcc puede encontrar cc1 cuando le pido que compile algo!


Lo que me ayudó fue utilizar llvm-gcc lugar:

ln -s $(which llvm-gcc) /usr/local/bin/gcc


Me encontré con un problema similar hoy: un compañero de trabajo no podía construir su software, pero yo podía construirlo. Cuando ejecutó gcc no pudo encontrar cc1 .

Su ruta ejecutable parecía razonable, pero el hecho de que no podía replicar fácilmente el error sugería algo en su entorno como causa.

Finalmente encontramos GCC_EXEC_PREFIX definido en su entorno que era el culpable y engañaba a gcc en la búsqueda de cc1 . Esto era parte de sus scripts de inicio de shell y estaba destinado a evitar 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


Puede solucionarlo ejecutando esto: En Fedora:

sudo dnf install redhat-rpm-config


Solo para documentar mi problema con este problema, aunque parezca ser un ejemplo específico de otras respuestas; como un novato relativo siento que esto podría ayudar a otros.

Solución:

Agregué ''/ usr / bin'' al comienzo de PATH para una sola sesión usando PATH=''/usr/path/:$PATH'' y todo comenzó a funcionar bien.

Usé gedit para actualizar la ruta de forma permanente, después de asegurarme de que no rompería mis cadenas de herramientas regulares.

Explicación:

Tengo múltiples toolchains instalados en Ubuntu 14.04LTS y uso solo un par de forma regular. Cuando traté de 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.


Solucioné este problema instalando explícitamente g ++:

sudo apt-get install g++

Se encontró un problema en Ubuntu 12.04 al instalar pandas. (Gracias perilbrain.)


yum install gcc-c++ hizo la corrección.