계획상 Rust를 사용해서 ARM 프로그램을 작성하는게 이번 방학 목표이기 때문에
맥에 Rust와 크로스컴파일용 툴체인을 깔아주도록 합니다.
www.rust-lang.org/tools/install
공식홈페이지에 들어가면 설치하는 법을 볼수있습니다.
쉘파일 다운받아서 쉽게 사용가능합니다.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
위 명령어 입력해주고
배시프로파일에 ~/.cargo/bin 환경변수 등록해주면 Rust 설치는 끝납니다.
rustc --version 명령으로 정상 설치 확인해줍시다.
======================================================================================================Rust ARM 크로스컴파일 툴체인 설치
이 쪽 깃허브 참고해서 설치해주었습니다.
하지만 저는 arm-v7 명령어 셋에 none - eabi 기반으로 크로스 컴파일 할 예정이기 때문에 설정을 살짝 바꿔줍시다.
sigmaris.info/blog/2019/02/cross-compiling-rust-on-mac-os-for-an-arm-linux-router/
rustup의 타겟 목록은 이쪽에서 확인해줬습니다.
rustup target list
이 명령어로 타겟리스트를 볼 수 있습니다.
저는 cortex-a7 이 장착된 라즈베리파이2와 a7의 qemu환경용으로 개발하고 싶기때문에 적당한 목록을 뒤져봅시다.
v7 을 키워드로 grep 해보니 여러개가 나오네요
찾아보니까 armv7a = a시리즈, armv7r = r 시리즈 인거같습니다.
armv7a-none-eabi 기준으로 맞춰주고 안된다 싶으면 바꿔줘야 할 거 같습니다.
크로스 컴파일은 또 처음이라...
rustup target add armv7a-none-eabi
rustup 설정을 추가해줍시다.
[target.armv7a-none-eabi]
linker = "arm-none-eabi-gcc"
cargo 폴더에 config파일을 만들어 줍시다.
예 뭐... 한번에 성공하는게 쉽지않죠...
target이 설치되지 않았다고 하네요 아까한건 뭐였을까요.
============================================
note: 만 본 저의 실책이었네요 ㅋㅋ
소스에 #![no_std] 옵션 먹이면 해당 오류는 사라집니다. 일단 컴파일 과정은 정상적으로 되는것 같습니다.
나머지는 Rust를 잘 사용하면 될거같네요
'컴퓨터 > OS' 카테고리의 다른 글
[Linux] 기초 명령어 + 기타등등 정리 (0) | 2021.12.28 |
---|---|
[OS]NachOS 메인함수 분석 (0) | 2021.04.11 |
[OS] NachOS 설치 (binutils&gcc 구버전 설치법 및 NachOS 컴파일) (3) | 2021.04.09 |
[MAC] VIM 하이라이팅 기능 & Vundle 플러그인 설정 과 rust 플러그인 (0) | 2021.01.28 |
[MAC] gcc arm 크로스 컴파일러 설치 (0) | 2021.01.09 |