arm-linux-gnueabihf-gcc의 버전을 어떻게 전환합니까?

arm-linux-gnueabihf-gcc의 버전을 어떻게 전환합니까?

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과 같은 다른 빌드 도구 때문에 해당 컴파일러를 호출 해야 하는 경우 일반적으로 가장 좋은 방법은 다른 도구를 재구성하거나 환경 변수를 원하는 컴파일러로 설정하는 것입니다. 필요한 컴파일러를 실행 하는 것만으로 는 충분하지 않을 수도 있습니다.makegccCCgcc충분한, 다른 도구의 이름은 여전히 ​​기본 버전을 실행하기 때문입니다.

즉, 귀하의 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./configurecmake ..makecc

개인적으로는 이 일조차 하고 싶지 않습니다.내 자신혼란스러워진다. 나는 그것이 크로스 컴파일러인 경우 내 컴파일러가 어떤 플랫폼을 대상으로 하는지 항상 즉시 명확하게 밝히는 것을 선호합니다.

관련 정보