1 votos

cc1plus: no existe tal archivo o directorio (gcc)

Edición

Cada vez que intento compilar algo con gcc obtengo este error:

gcc: error trying to exec 'cc1plus': execvp: No such file or directory

Lo que he probado

He intentado desinstalar gcc y volver a instalarlo usando brew.

Otros datos

Estoy en un MBP 2015 corriendo Mojave.

Edición 1

$ file $(which gcc)
/usr/local/bin/gcc: Mach-O 64-bit executable x86_64                                 
$ which gcc
/usr/local/bin/gcc
$ gcc --version
gcc (Homebrew GCC 8.2.0) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Edición 2

$ cat > /tmp/foo.c << EOFeof
#include<stdio.h>

int main(void) {
    printf("Hello World\n");
    return 0;
}
EOFeof

gcc /tmp/foo.c -o /tmp/foo
/tmp/foo
gcc: error trying to exec 'cc1': execvp: No such file or directory
zsh: no such file or directory: /tmp/foo

0 votos

¿Cuál es la razón para usar gcc y no clang?

0 votos

Por varias razones. GCC tiene características que clang no tiene, GCC suele ser el primero en adoptar nuevos estándares y características del lenguaje. GCC es lo que muchos otros usan y es útil tener el mismo compilador que mis compañeros. Me gusta clang y suelo usarlo, pero a veces es necesario usar GCC.

0 votos

He añadido una edición a mi respuesta. ¿Has eliminado bcc de brew y has validado las compilaciones del núcleo del sistema? Una vez que estés seguro de que el compilador funciona, cuando vuelvas a instalar gcc - ejecuta brew doctor antes y después del brew install y observe si se producen errores al instalar el propio gcc. Sé que dijiste que desinstalaste, pero esto me parece algo ajeno a gcc de ahí mi respuesta expansiva de probar también con clang. Esperemos que alguien tenga una respuesta mejor. ¿Tal vez @Mark?

-1voto

Oskar Puntos 1242

Algo se va a liar, pero con los detalles dados no se ni por donde adivinar que tienes mal. En su lugar. vamos a ir a la inversa y tratar algo super mínimo que debe mostrar su fracaso de inmediato.

He aquí una sencilla prueba de extremo a extremo de gcc que viene de Apple debería funcionar. Estoy utilizando la versión que viene con Mojave (ProductVersion: 10.14.3 BuildVersion: 18D109) de acuerdo con el sw_vers en MacOS.

cat > /tmp/foo.c << EOFeof
#include<stdio.h>

int main(void) {
    printf("Hello World\n");
    return 0;
}
EOFeof

gcc /tmp/foo.c -o /tmp/foo
/tmp/foo

Yo empezaría por saber qué versión de GCC estás utilizando:

Mac:~ me$ file /tmp/foo
/tmp/foo: Mach-O 64-bit executable x86_64
Mac:~ me$ file $(which gcc)
/usr/bin/gcc: Mach-O 64-bit executable x86_64
Mac:~ me$ which gcc
/usr/bin/gcc
Mac:~ me$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin18.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

A continuación, puede repetir la prueba en su sabor de gcc para averiguar las diferencias o si necesitas el bcc que no es la implementación clang de un compilador como gcc.

¿Qué error concreto o qué diferencias concretas tiene? Siéntase libre de iniciar un nuevo hilo o editar / refinar su pregunta y luego @ mí en los comentarios.

0 votos

Gracias por la respuesta. He actualizado mi pregunta en consecuencia.

0 votos

Has borrado foo en /tmp/foo && rm /tmp/foo antes de ejecutar file /tmp/foo Eso es interesante.

0 votos

¿A qué te refieres?

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