I've tried this repeatedly and still can't figure out where I'm going wrong.
I installed Rust from the official website (version 1.44.1), and I can run rustc --version
and get the right result. I can create a new project, but when I run cargo test
or cargo build
, I get errors.
Compiling hello-rust v0.1.0 (C:\Projects\rust-test\hello-rust)
error: linking with `link.exe` failed: exit code: 1
|
= note: "link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps\\hello_rust-3bd7255de8fc516c.2475ppgeya7982p6.rcgu.o" "C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps\\hello_rust-3bd7255de8fc516c.2k8om5gztlm4khis.rcgu.o" "C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps\\hello_rust-3bd7255de8fc516c.2npazqbfnne9a4sz.rcgu.o" "C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps\\hello_rust-3bd7255de8fc516c.31mw3i7sxv4jy5mf.rcgu.o" "C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps\\hello_rust-3bd7255de8fc516c.39lo872ze2g8kjy6.rcgu.o" "/OUT:C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps\\hello_rust-3bd7255de8fc516c.exe" "C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps\\hello_rust-3bd7255de8fc516c.3pzk8mfjqu22abeg.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis" "/LIBPATH:C:\\Projects\\rust-test\\hello-rust\\target\\debug\\deps" "/LIBPATH:C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libtest-ce9bcda9bff89d22.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libterm-5685a6e382a0344d.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libgetopts-9672beb79727d086.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunicode_width-0b6119489f498de7.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_std-f43d3b6a5d7adb85.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-13b0a7dd239e134e.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-c6983deeb3795666.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-fb1f6de11ac9d69b.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-09135599e2aa779b.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libbacktrace-4aec9f98c25f9f5d.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-29671087b5d92459.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-7c5d84958fafcb64.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-c820fe24a63d105a.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-eab51dcd5481cddb.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-da92c312ae6fecdd.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-693c88df9572eb34.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-b5aae910499df009.rlib" "C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-9a7454af4f639d0b.rlib" "kernel32.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
= note: /usr/bin/link: extra operand ‘/LIBPATH:C:\\Users\\Jaden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib’
Try '/usr/bin/link --help' for more information.
error: aborting due to previous error
error: could not compile `hello-rust`.
To learn more, run the command again with --verbose.
My research has turned up something about MSVC not being set up properly or something missing from the PATH variable. What does this error mean? I have Visual Studio 2017 installed (just the basics, I didn't check any of the workloads or individual components), and to my knowledge, that is MSVC (Microsoft Studio Visual C++). I'm new to Rust and low-level coding in general (I'm a Python/JavaScript guy), so I don't really understand what I need to do here. Could anyone give me guidance here?
Why is MSVC not installing or being recognized by Rust? What could cause this? How can I fix it?
I happened to find the answer by myself which I didn't find documented anywhere with regards to Rust. I searched longer about installing MSVC and found this Microsoft page: https://learn.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=vs-2019
For core C and C++ support, choose the "Desktop development with C++" workload.
I modified my installation and selected the Desktop development with C++ workload. That worked!