GCCはFreeBSDでは動作しません

GCCはFreeBSDでは動作しません

FreeBSDでGCCを実行しようとすると、次のエラーが発生します。

% 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

バイナリpkgを使用して、次のバージョンのGCCをインストールしました。

% 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

また、同じ結果でポートバージョンをインストールしました。

何が間違っている可能性がありますか?

答え1

FreeBSD 10からスタートその音新しい基本コンパイラです。

Clangを使用してコードをコンパイルしてみるか、以前と同じようにGCCバージョンをインストールする必要があります。

ただし、Clangに切り替える前に、FreeBSDはGCCバージョン4.2を使用しており、そのGCCのバイナリはその/usr/bin/gccため、GCCの最新のポートではバイナリ名を異なるように指定する必要があります。

したがって、すべてのGCCポートにはバージョン番号が/usr/local/bin/gccXYどこにあるかというバイナリファイルがあります。XY

FreeBSDにgcc4.7をインストールすると、以前の/usr/local/bin/gcc動作は発生しませんが、/usr/local/bin/gcc47`が発生します。

簡単に言えば、GCC 4.7でコードをコンパイルするにはgcc47gcc

しかし、Clangを使ってみると良いかもしれません。これは、コードがコンパイラに依存していることを確認するために、他のコンパイラでコードをコンパイルすることが常に良い考えだからです。コンパイルされていない場合は、コードが破損しているか、膨大なコンパイラのバグが見つかったためです。

また見てくださいFreeBSDがClang / LLVMを好み、GCCを使用しなくなったのはなぜですか?

関連情報