![문맥](https://linux55.com/image/136189/%EB%AC%B8%EB%A7%A5.png)
문맥
Ubuntu 18.04, Linux foobar-VirtualBox 4.15.0-23-generic #25-Ubuntu SMP Wed May 23 18:02:16 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
최근에 가상 머신에 설치했습니다 . Cortex-M4F CPU용 애플리케이션을 크로스 컴파일하고 싶습니다.하드 플로트, 그래서 버전 뿐만 아니라 패키지 gcc-arm-none-eabi
버전 도 설치했습니다 .15:6.3.1+svn253039-1build1
libnewlib-arme-none-eabi
2.4.0.20160527-3
질문
링커 오류는 하드 부동 소수점 수를 사용하는 개체 파일과 소프트 부동 소수점 수를 사용하는 라이브러리 간의 충돌로 인해 발생합니다. 일부 연구에서는 이것이 알려진 사실이라고 제안합니다.우분투18.04(바이오닉 비버) 질문:
올바른 컴파일러 및 링커 플래그를 제공했으며 Windows 크로스 툴체인을 사용하여 올바르게 빌드된 프로젝트를 제공했습니다.GNU ARM 임베디드. 여기에 완전한 오류를 붙여넣는 것은 의미가 없다고 생각합니다. 누군가가 필요하다고 생각하면 질문을 편집해 드리겠습니다.
내가 시도한 것
기본적인 이해를 바탕으로 기능적인 GCC ARM 툴체인을 얻기 위한 두 가지 솔루션이 있습니다.
gcc-arm-none-eabi
작동 중인 버전으로 돌아가려면 다운그레이드하세요.- Teams에서
gcc-arm-none-eabi
GCC ARM Embedded PPA 제거 및 설치 (gcc-arm-embedded
PPA에서 gcc-arm-embedded 설치)
gcc-arm-none-eabi를 다운그레이드하지만 무엇으로 다운그레이드합니까?
다운그레이드하려면 gcc-arm-none-eabi
패키지 관리자에서 이전 버전을 찾아야 합니다. 먼저 다음을 사용하여 패키지 목록을 업데이트했습니다 sudo apt update
.
sudo apt show gcc-arm-none-eabi
패키지: gcc-arm-none-eabi
버전: 15:6.3.1+svn253039-1build1
우선 순위: 추가
부분: Universe/devel
소스: Ubuntu
유지 관리자: Ubuntu 개발자
원래 관리자: Agustin Henze
오류:https://bugs.launchpad.net/ubuntu/+filebug
설치 크기: 307MB는
다음에 따라 달라집니다: libc6(>= 2.15), libgcc1(>= 1:3.0), libgmp10, libisl15(>= 0.15), libmpc3, libmpfr6(>= 3.1.3), libstdc++6(> = 5), zlib1g (>= 1:1.1.4), binutils-arm-none-eabi
권장: libnewlib-arm-none-eabi
홈페이지:http://gcc.gnu.org/
다운로드 크기: 24.3MB
APT 소스:http://ch.archive.ubuntu.com/ubuntubionic/universe amd64 패키지
설명: ARM Cortex-A/R/M 프로세서용 GCC 크로스 컴파일러
Cortex-M, Cortex-R 및 Cortex-A 프로세서를 사용하는 임베디드 ARM 칩용 베어 메탈 컴파일러입니다. 이 패키지는 ARM에서 제공하는 GNU ARM 툴체인을 기반으로 합니다.
거기에는 이전 버전이 표시되지 않습니다. 여기에 나열되어야 한다고 생각하는데 표시되지 않습니다. 다운그레이드하려는 정확한 이전 버전을 제공할 수 없으면 다운그레이드할 수 없습니다.
gcc-arm-none-eabi 대신 gcc-arm-embedded를 사용하세요.
위 링크에 제공된 지침을 따랐고 그 결과 다음 명령이 실행되었습니다.
sudo apt remove gcc-arm-none-eabi
sudo apt-add-repository ppa:team-gcc-arm-embedded/ppa
sudo apt update
[...] IGN: 4http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntuBionicInRelease
가져오기: 5http://security.ubuntu.com/ubuntuBionic Security InRelease [83.2 kB]
오류: 6http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntuBionic 버전을 찾을 수 없습니다.
404 [IP: 91.189.95.83 80]
패키지 목록을 읽는 중... 완료
E: 저장소'http://ppa.launchpad.net/team-gcc-arm-embedded/ppa/ubuntuBionic Release'에는 릴리스 파일이 없습니다.
N: 이러한 저장소에서의 업데이트는 안전하게 수행할 수 없으므로 기본적으로 비활성화되어 있습니다.
N: 저장소 생성 및 사용자 구성 세부 정보는 apt-secure(8) 맨페이지를 참조하세요.
sudo apt-install gcc-arm-embedded
패키지 목록을 읽는 중... 완료
종속성 트리 구축
상태 정보를 읽는 중... 완료
E: gcc-arm-embedded 패키지를 찾을 수 없습니다.
기본적으로 PPA에 액세스하는 데 문제가 있는 것 같습니다. apt
스위치를 시도했지만 --allow-unauthenticated
명령 출력이 변경되지 않았습니다.
질문
이 두 가지 솔루션 중 하나를 작동시키는 방법이 있습니까, 아니면 Cortex-M4F CPU용 하드 플로팅 애플리케이션을 구축하기 위해 Ubuntu 18.04에서 기능적인 GCC 툴체인을 얻는 또 다른 방법이 있습니까?
(최근에 포스팅한스택 오버플로 질문이 문제에 관해 당시 나는 그것이 Unix 세계와 별로 관련이 없는 툴체인 문제라고 생각했습니다. 여기서 답변을 얻으면 닫고 이 Q&A로 리디렉션하겠습니다)
답변1
다음에서 기능 툴체인을 다운로드할 수 있습니다.개발자 웹사이트그리고 기존 gcc-arm-none-eabi 패키지를 제거한 후 수동으로 설치하세요.
웹사이트로 이동하여 "다운로드" 버튼을 클릭하고 다음 항목을 받으세요
gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
. 홈 디렉토리에 저장하세요.
이전 Ubuntu 패키지를 제거했는지 확인하십시오.
sudo apt remove binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi
새 패키지를 홈 디렉터리에 추출합니다.
tar -xjvf gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
경로에 새 도구 체인을 추가합니다.
export PATH=$PATH:/home/(your user)/gcc-arm-none-eabi-7-2018-q2-update/bin/
이 시점에서는 작동하는 ARM 컴파일러와 툴체인이 있어야 합니다. (Unix를 처음 접하는 경우: 터미널을 닫고 새 터미널을 열 경우 명령문을 다시 실행해야 export PATH
컴파일러가 다시 시작됩니다.)
컴파일러가 설치되어 있는지 확인하십시오.
gcc --version