I have a basic rust/cargo project with a single main file and some basic dependencies. The
cargo build command works fine when the target is not specified (I am using windows so it builds to windows), but when I try to cross compile the program to linux using
cargo build --target=x86_64-unknown-linux-gnu or
cargo build --target=x86_64-unknown-linux-musl, the process fails with the following error:
linker 'cc' not found.
Does anyone have an idea how to get around this? Is there a specific linker I need to install?
I’ve just figured it out.
It turns out you need to tell cargo to use the LLVM linker instead. You do this by creating a new directory called
.cargo in your base directory, and then a new file called
config.toml in this directory. Here you can add the lines:
[target.x86_64-unknown-linux-musl] rustflags = ["-C", "linker-flavor=ld.lld"]
Then building with the command
cargo build --target=x86_64-unknown-linux-musl should work!