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로 코드 를 컴파일하려면 gcc47
.gcc
하지만 Clang을 사용해 보는 것이 좋을 수도 있습니다. 코드가 컴파일러에 종속되는지 확인하기 위해 다른 컴파일러로 코드를 컴파일하는 것이 항상 좋은 생각이기 때문입니다. 컴파일되지 않으면 코드가 손상되었거나 엄청난 컴파일러 버그를 발견한 것이기 때문입니다.
또한 살펴보세요FreeBSD가 Clang/LLVM을 선호하여 GCC를 더 이상 사용하지 않는 이유는 무엇입니까?