如何 运行 使用 Rust 和 Amethyst 的可执行文件
How to run the executable with Rust and Amethyst
所以我遵循了 Amethyst Pong 教程,现在正在构建一个小的 Game of Life 程序。如果我 运行 它与 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." })) } }
如果还不清楚我在 Windows 10。我还创建了一个空白的 Rust 项目并尝试 运行ning 它的可执行文件并且它工作正常:
$ 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)
我应该提供任何想法或更多信息吗?
您的主函数调用 application_root_dir,它是 Amethyst 的一部分。
application_root_dir 的定义表明它使用 CARGO_MANIFEST_DIR
或可执行文件的位置作为根路径(稍后用于查找资产和配置)。当你调用 cargo run
时,它会将 CARGO_MANIFEST_DIR
设置为当前构建的 crate 的 Cargo.toml 的目录,而如果你直接调用二进制 CARGO_MANIFEST_DIR
则根本不会设置(所以它将尝试使用 .\target\debug
作为基本路径来查找 configs/assets).
您可以将二进制文件复制到 Cargo.toml
的位置或手动设置 CARGO_MANIFEST_DIR
,然后您应该能够直接执行二进制文件。
所以我遵循了 Amethyst Pong 教程,现在正在构建一个小的 Game of Life 程序。如果我 运行 它与 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." })) } }
如果还不清楚我在 Windows 10。我还创建了一个空白的 Rust 项目并尝试 运行ning 它的可执行文件并且它工作正常:
$ 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)
我应该提供任何想法或更多信息吗?
您的主函数调用 application_root_dir,它是 Amethyst 的一部分。
application_root_dir 的定义表明它使用 CARGO_MANIFEST_DIR
或可执行文件的位置作为根路径(稍后用于查找资产和配置)。当你调用 cargo run
时,它会将 CARGO_MANIFEST_DIR
设置为当前构建的 crate 的 Cargo.toml 的目录,而如果你直接调用二进制 CARGO_MANIFEST_DIR
则根本不会设置(所以它将尝试使用 .\target\debug
作为基本路径来查找 configs/assets).
您可以将二进制文件复制到 Cargo.toml
的位置或手动设置 CARGO_MANIFEST_DIR
,然后您应该能够直接执行二进制文件。