因此,我遵循了紫晶乒乓球教程,现在正在构建一个小的生活游戏程序。如果我用cargo run运行它,它工作得很好,但是如果我使用cargo build,然后运行
$ .\target\debug\game_of_life.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." })) } }如果还不清楚,我使用的是Windows10。我还创建了一个空白的rust项目,并尝试运行该项目的可执行文件,它工作得很好:
$ cargo new temp
$ cd temp
$ cargo build
$ .\target\debug\temp.exe
Hello, world!复制步骤(必须安装cargo和vulkan ):
$ 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." })) } }请注意这一点:
$ amethyst new temp
$ cd temp
$ cargo run工作正常
版本:
$ amethyst --version
Amethyst CLI 0.10.0
$ cargo --version
cargo 1.43.0 (3532cf738 2020-03-17)有什么想法或我应该提供的更多信息吗?
发布于 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,然后就可以直接执行您的二进制文件了。
https://stackoverflow.com/questions/61409492
复制相似问题