LoginSignup
23
18

More than 3 years have passed since last update.

Windows 10 で Rust のインストール

Posted at

Rust の Windows 環境構築で少しだけハマったのでメモ代わりです。

インストール

rust の公式ページ に従って rustup-init.exe をインストール。

環境変数PATH%USERPROFILE%/.cargo/binを追加するよう言われるので追加。

rustup set default-host x86_64-pc-windows-msvc しておく。

続いて、VC Build Tools が必要とのことなのでインストール。

Microsoftの Visual Studioページ トップ下の「すべてのダウンロード」から Visual Studio 2019 のツールをクリックして開き、Build Tools for Visual Studio 2019 を選択。

image.png

インストーラーが起動するので、画面から "Visual C++ Build Tool" を選択。

  • 画面右側はデフォルトのまま選択

image.png

※関係ありませんが Windows でのスクショは PrintScreen だけではなく、 Win + Shift + S でスクショツールが起動するようになったのですね。便利。(Macでは Cmd + Shift + Ctrl + 4 を多用していたので同じものがあるといいなーと思っていました)

トラブル

以下のようなサンプルをコンパイルしようとするとエラーになりました

main.rs
fn main() {
    println!("Hello")
}

以下かがエラー内容です。

メッセージの日本語が表示されないのも何気につらい。chcp 437 して英語のコードページに切り替えてもダメでした。rust windows link error 1112 などで検索してもいまいちヒットせず……

c:\me\git\rust-tutorial>rustc main.rs
error: linking with `link.exe` failed: exit code: 1112
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x86\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "main.main.7rcbfp3g-cgu.0.rcgu.o" "main.main.7rcbfp3g-cgu.1.rcgu.o" "main.main.7rcbfp3g-cgu.2.rcgu.o" "main.main.7rcbfp3g-cgu.3.rcgu.o" "main.main.7rcbfp3g-cgu.4.rcgu.o" "main.main.7rcbfp3g-cgu.5.rcgu.o" "/OUT:main.exe" "main.4s37gsrti678ik8u.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/LIBPATH:C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-c418a1c7c96bdbae.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-740e55ec30ec9b42.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-4e3d4b2c73be2130.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-e03c95365300773b.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-9b63ec27f8df7123.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-cc811f306714ba24.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-dee84a63f4b90027.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-7d070a58cfb70fe0.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-10ec18f1dfe36e70.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-e0e69d50f48d4667.rlib" "C:\\Users\\reki\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-45eb0e961cc324b2.rlib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
  = note: Non-UTF-8 output: msvcrt.lib(chkstk.obj) : fatal error LNK1112: \x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xcc\x83R\x83\x93\x83s\x83\x85\x81[\x83^\x81[\x82\xcc\x8e\xed\x97\xde \'x86\' \x82\xcd\x91\xce\x8f\xdb\x83R\x83\x93\x83s\x83\x85\x81[\x83^\x81[\x82\xcc\x8e\xed\x97\xde \'x64\' \x82\xc6\x8b\xa3\x8d\x87\x82\xb5\x82\xc4\x82\xa2\x82\xdc\x82\xb7\x81B\r\n

error: aborting due to previous error

これは VisualStudio の LNK1112 と LNK1158 の対処 にも説明のあるエラーで、VC Build Tools の設定が 32bit 向けになっているのが原因でした。

vcvars64.bat を実行すればよいのですが、これがどこにあるのか見つけるのに少し苦労しました。

"c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"

で解決できました。

23
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
18