首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Rust和Amethyst运行可执行文件

如何使用Rust和Amethyst运行可执行文件
EN

Stack Overflow用户
提问于 2020-04-24 21:26:20
回答 1查看 717关注 0票数 0

因此,我遵循了紫晶乒乓球教程,现在正在构建一个小的生活游戏程序。如果我用cargo run运行它,它工作得很好,但是如果我使用cargo build,然后运行

代码语言:javascript
复制
$ .\target\debug\game_of_life.exe

我得到了错误:

代码语言:javascript
复制
Error: Error { inner: Inner { source: None, backtrace: None, error: ConfigError(File(Os { code: 3, kind: NotFound, message: "The system cannot find the path specified." })) } }

如果还不清楚,我使用的是Windows10。我还创建了一个空白的rust项目,并尝试运行该项目的可执行文件,它工作得很好:

代码语言:javascript
复制
$ cargo new temp
$ cd temp
$ cargo build
$ .\target\debug\temp.exe
Hello, world!

复制步骤(必须安装cargo和vulkan ):

代码语言:javascript
复制
$ cargo install amethyst_tools
$ amethyst new temp
$ cd temp
$ cargo build
$ .\target\debug\temp.exe
Error: Error { inner: Inner { source: None, backtrace: None, error: ConfigError(File(Os { code: 3, kind: NotFound, message: "The system cannot find the path specified." })) } }

请注意这一点:

代码语言:javascript
复制
$ amethyst new temp
$ cd temp
$ cargo run

工作正常

版本:

代码语言:javascript
复制
$ amethyst --version
Amethyst CLI 0.10.0
$ cargo --version
cargo 1.43.0 (3532cf738 2020-03-17)

有什么想法或我应该提供的更多信息吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-25 00:56:24

您的主函数调用application_root_dir,它是紫晶的一部分。application_root_dir的定义表明,它使用CARGO_MANIFEST_DIR或可执行文件的位置作为根路径(稍后用于查找资产和配置)。当您调用cargo run时,它将CARGO_MANIFEST_DIR设置为当前构建的机箱的Cargo.toml的目录,而如果您直接调用二进制文件,则根本不会设置CARGO_MANIFEST_DIR (因此,它将尝试使用.\target\debug作为查找配置/资产的基本路径)。

您可以将二进制文件复制到Cargo.toml的位置,或者手动设置CARGO_MANIFEST_DIR,然后就可以直接执行您的二进制文件了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61409492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档