5 버전을 사용하고 싶습니다 arm-linux-gnueabihf-gcc
.
그래서 다음을 통해 설치했습니다.
apt-get install gcc-5-arm-linux-gnueabihf
하지만 이제 실행하면 gcc --version
버전 7이라고 표시됩니다.
이전 버전을 사용하려면 어떻게 해야 합니까?
아니면 최신 버전을 완전히 제거해야 합니까?
답변1
arm-linux-gnueabihf-gcc-5
대신 실행할 수 있습니다 gcc
.
이 파일 목록gcc-5-arm-linux-gnueabihf
에는 패키지가 에 배치하는 다른 도구의 이름이 포함되어 있어 /usr/bin
유용할 수 있습니다. (어떤 릴리스를 실행하고 있는지는 언급하지 않았지만 해당 릴리스는 인기 있는 LTS이고 기본값은 버전 7이므로 18.04인 것으로 추측됩니다.)
기본 버전을 사용하려는 경우에도 /usr/bin/gcc
(권장하지 않는) 가리키는 항목을 변경하지 않는 한 gcc
명령은 다음을 생성하는 GCC 컴파일러를 실행합니다.토종의실행 파일. Ubuntu 시스템이 ARM에서 실행되지 않는 한 이는 ARM 컴파일러가 아닙니다. armhf용 GCC 크로스 컴파일러의 기본 버전을 실행하려면 arm-linux-gnueabihf-gcc
다음을 사용하세요.이 파일 목록).
네이티브 및 크로스 컴파일러의 여러 버전을 동일한 시스템에 동시에 설치할 수 있습니다. 그러나 기본 GCC 컴파일러의 기본 버전만 일반적으로 명령으로 호출됩니다 gcc
. 다른 명령에는 도구 체인 접두사, 버전 접미사 또는 (이 경우) 둘 다 있습니다. 이것이 그 경우 다심지어기본이 아닌 컴파일러가 시스템에 설치된 유일한 컴파일러인 경우.
gcc
정말로 해당 컴파일러를 호출 해야 한다면 ...
호출 gcc
과 같은 다른 빌드 도구 때문에 해당 컴파일러를 호출 해야 하는 경우 일반적으로 가장 좋은 방법은 다른 도구를 재구성하거나 환경 변수를 원하는 컴파일러로 설정하는 것입니다. 필요한 컴파일러를 실행 하는 것만으로 는 충분하지 않을 수도 있습니다.make
gcc
CC
gcc
충분한, 다른 도구의 이름은 여전히 기본 버전을 실행하기 때문입니다.
즉, 귀하의 Ubuntu 시스템이 다음과 같다고 가정합니다.~ 아니다armhf 시스템인데 넌 아직도정말로 원한다 gcc
크로스 컴파일러를 실행하려면 arm-linux-gnueabihf-gcc-5
몇 가지 옵션이 있습니다. /usr/bin/gcc
심볼릭 링크(18.04에서 에 연결됨 ) 를 대체할 수 있지만 gcc-7
그렇게 하지 않는 것이 좋습니다. 그렇게 하면 gcc
기본 컴파일러라고 가정하는 모든 것이 손상될 가능성이 높으며 향후 패키지 관리 작업을 방해하거나 실행 취소될 수 있습니다.
대신 사용자의 개인 bin 디렉토리에 gcc
심볼릭 링크를 넣을 수 있습니다 . 디렉터리가 존재하는 경우 로그인 시 기본 사용자별 파일이 해당 디렉터리를 추가합니다 . 사용자 정의하지 않은 자동화된 빌드(예: 또는 를 실행 한 다음 )는 일반적 으로 기본 컴파일러에 대한 심볼릭 링크로 계속 사용되므로 문제가 발생하지 않아야 합니다.arm-linux-gnueabihf-gcc-5
~/bin
~/.profile
$PATH
./configure
cmake ..
make
cc
개인적으로는 이 일조차 하고 싶지 않습니다.내 자신혼란스러워진다. 나는 그것이 크로스 컴파일러인 경우 내 컴파일러가 어떤 플랫폼을 대상으로 하는지 항상 즉시 명확하게 밝히는 것을 선호합니다.