FreeBSD에서는 GCC를 실행할 수 없습니다.

FreeBSD에서는 GCC를 실행할 수 없습니다.

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`이 표시됩니다.

gcc47간단히 말해서 , GCC 4.7로 코드를 컴파일하려면 gcc.

하지만 Clang을 사용해 보는 것이 좋을 수도 있습니다. 코드가 컴파일러에 의존하는지 확인하기 위해 항상 다른 컴파일러로 코드를 컴파일하는 것이 좋기 때문입니다. 왜냐하면 컴파일되지 않으면 코드가 깨졌을 수도 있고 정말 멋진 컴파일러 버그를 발견했을 수도 있기 때문입니다.

또한 살펴보세요FreeBSD가 Clang/LLVM을 위해 GCC를 더 이상 사용하지 않는 이유는 무엇입니까?

관련 정보