Lets build a simple “Hello Pi” in Rust and compile it for the Raspberry Pi running a version. I am using a Raspberry Pi 3 and Raspbian. Why do we want to compile this on a PC? Assuming you do development of your application on a PC, it would be much faster to compile and test it on a PC as well and ship only the binary to the RPi. program Linux We will need in order to use different versions of Rust and to select compile targets. It is a toolchain installer. rustup curl https://sh.rustup.rs -sSf | sh If you have a previously installed Rust, then rustup will ask you to remove it, so that rustup can manage the different Rust versions. Go ahead and install the default Rust version for your environment. To compile for the Raspberry Pi we will need to install the right toolchain for the ARM platform. Model 2 and 3 support ARMv7, while model 1 supports ARMv6. The RPi has a floating point processor, so we want the (hf is hard float I believe), as opposed to the . This article will focus on models 2&3. gnueabihf gnueabi Add the toolchain for Rust: $ rustup target add armv7-unknown-linux-gnueabihf and the right C compiler: $ sudo apt-get install gcc-4.7-multilib-arm-linux-gnueabihf We need to add our build target to ~/.cargo/config by adding the following lines, so that rust knows which linker to use. [target.armv7-unknown-linux-gnueabihf]linker = "arm-linux-gnueabihf-gcc-4.7" Creating our project Installing Rust will have installed cargo, the Rust package manager. We can use it to create a new project. $ cargo new hello-rpi --bin$ cd hello-rpi We can still run our project locally on AMD64, by running To build our project for the RPi we use. cargo run. $ cargo build --target=armv7-unknown-linux-gnueabihf Let’s see if we have successfully created an arm binary $ file target/armv7-unknown-linux-gnueabihf/debug/hello-rpi target/armv7-unknown-linux-gnueabihf/debug/hello-rpi: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, Success! When we transfer hello-rpi to our Raspberry Pi, we will be able to run it and get a fantastic “hello world!” on the command line! Now that we can compile, we can start developing something more interesting. Part 2 coming soon…