运行 在另一台 Windows 机器上编译 Rust 程序有什么要求?
What is the requirements for running a Rust compiled program on another Windows machine?
我对 Rust 完全陌生。我在我的 Windows 10 机器上安装了 Rust。创建了一个简单的 helloworld 程序,如下所示:
fn main() {
print!("Hello world!");
}
并用rustc rust.rs
编译。之后生成了两个文件:
admin@myserver MINGW64 ~/Documents/rust_test
$ ls -latrh
total 1.6M
drwxr-xr-x 1 admin 197121 0 Sep 2 03:28 ..
-rw-r--r-- 1 admin 197121 45 Sep 4 00:26 rust.rs
-rwxr-xr-x 1 admin 197121 146K Sep 4 00:26 rust.exe
-rw-r--r-- 1 admin 197121 1.5M Sep 4 00:26 rust.pdb
drwxr-xr-x 1 admin 197121 0 Sep 4 00:26 .
我可以成功 运行 rust.exe
并得到正确的结果。但是,当我将 rust.exe
复制到另一个新创建的 Windows 2016 虚拟机并 运行 它时,出现此错误:
我的问题是,在没有安装 Rust 的机器上 运行 Rust 编译程序有什么要求?我是否也需要在其上安装 vc++ build tools
(就像我在开发机器上所做的那样)?
您需要安装正确版本的 Microsoft Visual C++ Redistributable Package。
你的错误信息中文件名中的“140”表示版本,应该是Visual C++ Redistributable for Visual Studio 2015.
作为快捷方式,以下是其他版本最常用的下载链接:
- Microsoft Visual C++ Redistributable 2017 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2015 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2013 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2012 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2010 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2008 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2005 — 32-bit (x86), 64-bit (x64)
您还可以通过添加
静态 link CRT
[target.x86_64-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static", "-Zunstable-options"]
给你的.cargo/config
。正如 this Stack Overflow answer.
中指出的
我 运行 遇到了同样的问题,但我通过安装 Microsoft Visual C++ Redistributable 2019 解决了它。你不需要坚持使用 2015。任何更新的版本都可以正常工作。
我对 Rust 完全陌生。我在我的 Windows 10 机器上安装了 Rust。创建了一个简单的 helloworld 程序,如下所示:
fn main() {
print!("Hello world!");
}
并用rustc rust.rs
编译。之后生成了两个文件:
admin@myserver MINGW64 ~/Documents/rust_test
$ ls -latrh
total 1.6M
drwxr-xr-x 1 admin 197121 0 Sep 2 03:28 ..
-rw-r--r-- 1 admin 197121 45 Sep 4 00:26 rust.rs
-rwxr-xr-x 1 admin 197121 146K Sep 4 00:26 rust.exe
-rw-r--r-- 1 admin 197121 1.5M Sep 4 00:26 rust.pdb
drwxr-xr-x 1 admin 197121 0 Sep 4 00:26 .
我可以成功 运行 rust.exe
并得到正确的结果。但是,当我将 rust.exe
复制到另一个新创建的 Windows 2016 虚拟机并 运行 它时,出现此错误:
我的问题是,在没有安装 Rust 的机器上 运行 Rust 编译程序有什么要求?我是否也需要在其上安装 vc++ build tools
(就像我在开发机器上所做的那样)?
您需要安装正确版本的 Microsoft Visual C++ Redistributable Package。
你的错误信息中文件名中的“140”表示版本,应该是Visual C++ Redistributable for Visual Studio 2015.
作为快捷方式,以下是其他版本最常用的下载链接:
- Microsoft Visual C++ Redistributable 2017 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2015 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2013 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2012 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2010 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2008 — 32-bit (x86), 64-bit (x64)
- Microsoft Visual C++ Redistributable 2005 — 32-bit (x86), 64-bit (x64)
您还可以通过添加
静态 link CRT[target.x86_64-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static", "-Zunstable-options"]
给你的.cargo/config
。正如 this Stack Overflow answer.
我 运行 遇到了同样的问题,但我通过安装 Microsoft Visual C++ Redistributable 2019 解决了它。你不需要坚持使用 2015。任何更新的版本都可以正常工作。