[ Rust ] Cross-compile의 개념과 방법

Lutica_·2025년 6월 6일
0

Cross-compile

  • 일반적인 저수준 언어들은 고급언어에서 바로 어셈블리어로 변환하는 경우가 있는데, 이때
  • Rust는 C/C++과 비슷하게 (LLVM을 거친 다음) 바로 어셈블리어로 변환한다.
  • 그런데, 컴퓨터마다 어셈블리어가 다른 경우가 있어서, 양질의 연산량을 가진 컴퓨터에서 컴파일 하여 저가의 HW를 사용하려는 경우, target-platform에 변화를 주어야 한다.
  • 특히, Rust의 경우 함수형 프로그래밍등의 문제가 있어 컴퓨팅 자원이 큰 환경에서 컴파일 이후 낮은 환경에서 실행하는 것이 정신건강에 이로울 수 있다.
  • AWS의 낮은메모리 환경(Scale-downed된 환경)의 경우에도 도움이 될 것으로 보인다. (가끔 컴파일을 서버했다가 Out Of Memory가 나서 서버에서 끊기는 경우가 있다.)

Rust 사전 설정

사전 설치되어야 할 환경

  • Cargo 및 Rustup이 설치되어야 한다.
  • Linux 기준 설치방법은 아래와 같다.
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
  • 다른 운영체제는 여기를 참고한다.

다른 target-platform compile 도구 설치

자세한건 여기 참고

  • 아래 명령어중 target부분을 바꾸고 설치한다.
$ rustup target add --toolchain <toolchain> <target>...
# e.g. rustup target add aarch64-unknown-linux-musl
# 리스트는 rustc --print=target-list로 볼 수 있다.
  • 설치된 툴 체인은 아래와 같이 확인 가능하다.
$ rustup toolchain list
stable-x86_64-unknown-linux-gnu (active, default)

실행

cargo build --target=<원하는 플랫폼>
  • 이렇게 하면 빌드가 된다. run로 변경시 시뮬레이션이 가능하다.
profile
해보고 싶고, 하고 싶은 걸 하는 사람

0개의 댓글