Windows 10을 사용하고 있습니다. armv7-unknown-linux-gnueabihf
에서 실행되는 Rust 프로그램을 크로스 컴파일하고 싶습니다. (armv7-unknown-linux-muscl
도 허용 될 수 있지만, 가능하지 않는 것 같습니다.) 여기 Windows에서 ARM Linux로 Rust를 크로스 컴파일
- 설치
rustup
rustup toolchain install stable-x86_64-pc-windows-gnu
rustup toolchain default stable-x86_64-pc-windows-gnu
rustup target add armv7-unknown-linux-gnueabihf
내
,./cargo/config
파일을 편집하여 포함 :[build] target = "armv7-unknown-linux-gnueabihf"
cargo build
이 모든 것을 잘 컴파일하지만 그것을 연결에 올 때이 오류 제공 : 지금까지 내가 결정할 수 있었다으로
error: could not exec the linker `cc`: The system cannot find the file specified. (os error 2)
을,이다 Rust는 자체 링커를 가지고 있지 않으며 대신 GCC를 사용하기 때문입니다. 분명히 나는이에게 자신을 제공하고 ./cargo/config
파일이 추가해야
[target.armv7-unknown-linux-gnueabihf]
linker = "c:/path/to/my/gcc/cross/compiler"
오른쪽인가요? 그렇다면 어스에서 어디서 그런 크로스 컴파일러를 다운로드 할 수 있습니까? 왜
rustup
을 설치하지 않습니까? GCC의 크로스 컴파일 버전을 직접 컴파일해야하는 것은 C/C++ 프로그램을 크로스 컴파일 할 때 가장 큰 고통입니다. Rustup은 실제로 이것을 쉽게 만들어주지 않습니까? @의 Notlikethat 의견에
'arm cross compiler windows '에 대한 인터넷 검색을 수행하면 미리 빌드 된 컴파일러를 다운로드하여 링커로 사용할 수있는 많은 유망한 리드가있는 것으로 보입니다. 어떤 질문을 하시겠습니까? 녹슬지 않기위한 기능 요청 인 경우 레포에서 하나만 만들 수 있습니까? 세미 관련 측면에 대한 대화가 있습니다 (https://github.com/rust-lang-nursery/rustup.rs/issues/486). – Shepmaster
대부분의 결과는 바이너리 형태 [여기] (https://launchpad.net/gcc-arm-embedded)에서 쉽게 사용할 수있는 임베디드 베어 메탈 ARM GCC에 대한 것입니다.그것은'arm-none-eabi-gcc' (또는 무언가,이 목표 삼중 체는 매우 임의적입니다)입니다. – Timmmm
일반적으로 패키지화 된 교차 툴체인의 경우 [Linaro toolchain binaries] (http://www.linaro.org/downloads/)로 이동하십시오. 분명하지 않은 경우 i686_mingw32가 필요합니다. – Notlikethat