【发布时间】: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"
- 发行版中的 .exe 与
--cargo run --release执行的程序不一样吗? - 我的应用程序中有一些文件依赖项,这可能是问题的原因吗? (但是,编译应用程序不会出错)
- 这可能是与 windows 相关的东西吗?
【问题讨论】:
-
也许它需要一些 dll 才能运行,它显示任何类型的错误?或者可以是代码,如果您使用的是winapi,可能就是这样,使用windows api创建窗口有一些奇怪的事情,这取决于它们是否显示的上下文
-
@cdecompilador 运行 --release 没有错误,尝试打开 .exe 时也没有错误。我正在使用winapi,你有更多关于你描述的奇怪行为的信息吗?我真的很困惑为什么
cargo -run release可以正常工作,但打开 .exe 却不行。 -
您提到的那些文件依赖项。尝试将您的 exec 复制到您的应用程序根目录。
cargo run --release使用您的应用程序根目录作为工作目录,但如果您尝试直接运行 exe,您的工作目录将是./target/release/,这可能会阻止它获取您的依赖项的有效路径(当然取决于您如何包含它们)
标签: rust