【问题标题】:Rust .exe fails to open on WindowsRust .exe 无法在 Windows 上打开
【发布时间】:2021-03-05 21:29:29
【问题描述】:

我正在用 rust 构建一个应用程序。使用--cargo run --release 成功编译并运行应用程序,打开应用程序的GUI 窗口。但是,当我手动打开target/release/MyApp.exe 时,什么也没有发生。检查myapp.exe 上次修改的时间显示运行--cargo run --release 正在更新应用程序。

我使用的是 Windows 10,所以我添加了“x86_64-pc-windows-msvc”作为构建目标。

[package]
name = "MuTexAlpha"
version = "0.1.0"
authors = ["Webb Hinton <wyhinton189@gmail.com>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
fltk = "0.15.1"
serde = "1.0.118"
texture-synthesis = "0.8.0"
rand = "0.7.3"
num_cpus = "1.13.0"
uuid = { version = "0.8", features = ["serde", "v4"] }
image = "0.23.12"
glob = "0.3.0"
dyn-clone = "1.0.4"
colored = "2.0.0"
arboard = "1.1.0"
id_tree = "1.7.0"
id_tree_layout = "2.0.1"
typetag = "0.1"
serde_json = "1.0.61"
snafu = "0.6.10"
palette = "0.5.0"
indicatif = "0.14.0"

[build]
target = "x86_64-pc-windows-msvc"
  1. 发行版中的 .exe 与 --cargo run --release 执行的程序不一样吗?
  2. 我的应用程序中有一些文件依赖项,这可能是问题的原因吗? (但是,编译应用程序不会出错)
  3. 这可能是与 windows 相关的东西吗?

【问题讨论】:

  • 也许它需要一些 dll 才能运行,它显示任何类型的错误?或者可以是代码,如果您使用的是winapi,可能就是这样,使用windows api创建窗口有一些奇怪的事情,这取决于它们是否显示的上下文
  • @cdecompilador 运行 --release 没有错误,尝试打开 .exe 时也没有错误。我正在使用winapi,你有更多关于你描述的奇怪行为的信息吗?我真的很困惑为什么cargo -run release 可以正常工作,但打开 .exe 却不行。
  • 您提到的那些文件依赖项。尝试将您的 exec 复制到您的应用程序根目录。 cargo run --release 使用您的应用程序根目录作为工作目录,但如果您尝试直接运行 exe,您的工作目录将是 ./target/release/,这可能会阻止它获取您的依赖项的有效路径(当然取决于您如何包含它们)

标签: rust


【解决方案1】:

可能只是在黑暗中拍摄,但您是否使用 Windows 资源管理器打开 exe

打开一个cmd.exe 窗口并尝试从那里运行它。

【讨论】:

  • 是的,我正在文件资源管理器中运行!我尝试在命令提示符下运行,它与我和 file::io::error 博弈,所以我知道从这里去哪里
  • 如果您提供准确的错误代码/堆栈跟踪,我们可以提供帮助。当我们这样做时,也许也可以在您的问题中添加一些相关代码。
猜你喜欢
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
相关资源
最近更新 更多