By default, Rust on Windows with MSVC toolchain compiles to a dynamically linked C runtime, apparently following the default configuration on Visual Studio, which uses the /MD
compiler flag. In order to use static linking for the C runtime, we must change this to /MT
, something I’m used to do in my C++ Visual Studio projects.
I found notes about Rust linkage, which hints us specifically about these /MD
and /MT
switches, although not citing them explicitly. The way to specify static linking is through RUSTFLAGS
environment variable:
RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-pc-windows-msvc
Which is rather ugly, let me say. At least it appears to work, and this is the command line I’m using for my release builds now.
No comments:
Post a Comment