GCC no se puede ejecutar en FreeBSD

GCC no se puede ejecutar en FreeBSD

Estoy intentando ejecutar GCC en FreeBSD y aparece este error:

% gcc
ar: unrecognized option `--plugin'
usage:  ar -d [-Tjsvz] archive file ...
        ar -m [-Tjsvz] archive file ...
        ar -m [-Tabijsvz] position archive file ...
        ar -p [-Tv] archive [file ...]
        ar -q [-TcDjsvz] archive file ...
        ar -r [-TcDjsuvz] archive file ...
        ar -r [-TabcDijsuvz] position archive file ...
        ar -s [-jz] archive
        ar -t [-Tv] archive [file ...]
        ar -x [-CTouv] archive [file ...]
        ar -V

He instalado la siguiente versión de GCC usando el paquete binario:

% pkg info gcc
gcc-4.7.3_1
Name           : gcc
Version        : 4.7.3_1
Installed on   : Wed Jun 25 15:22:58 CEST 2014
Origin         : lang/gcc
Architecture   : freebsd:10:x86:64
Prefix         : /usr/local
Categories     : lang java
Licenses       : GPLv3RLE and GPLv3
Maintainer     : [email protected]
WWW            : http://gcc.gnu.org/
Comment        : GNU Compiler Collection 4.7
Options        :
        BOOTSTRAP      : off
        JAVA           : on

También instalé la versión del puerto con los mismos resultados.

¿Qué puede estar mal?

Respuesta1

Desde FreeBSD 10Sonido metálicoes el nuevo compilador predeterminado.

Podrías intentar compilar tu código con Clang o necesitas instalar una versión GCC como lo hiciste.

Pero antes del cambio a Clang, FreeBSD usaba la versión 4.2 de GCC y el binario de este GCC era /usr/bin/gcc, por lo que los puertos más nuevos de GCC necesitaban nombrar su binario de manera diferente.

Por eso, todos los puertos GCC tienen un binario llamado /usr/local/bin/gccXY, donde XYestá el número de versión.

Cuando instalas gcc4.7 en FreeBSD no obtienes un /usr/local/bin/gccagradecimiento por el comportamiento anterior, sino que obtienes /usr/local/bin/gcc47`.

En pocas palabras, cuando desee compilar su código con GCC 4.7, deberá utilizar gcc47y no gcc.

Pero tal vez deberías darle una oportunidad a Clang, ya que siempre es una buena idea compilar tu código con diferentes compiladores para ver si tu código depende de un compilador. Porque si no se compila, tu código probablemente esté roto o hayas encontrado un error en el compilador, lo cual es increíble.

Échale también un vistazo a¿Por qué FreeBSD está desaprobando GCC en favor de Clang/LLVM?

información relacionada