如何构建 Rust 二进制可执行文件
How to build a Rust binary executable
我正在尝试构建单个 Rust 二进制可执行文件。在 src 目录中我有四个文件:
main.rs:
use fasta_multiple_cmp::get_filenames;
fn main() {
get_filenames();
}
mod.rs:
pub mod fasta_multiple_cmp;
pub mod build_sequences_matrix;
fasta_multiple_cmp.rs:
pub mod fasta_multiple_cmp {
...
pub fn get_filenames() {
let args: Vec<String> = env::args().collect();
...
build_sequences_matrix.rs:
pub mod build_sequences_matrix {
use simple_matrix::Matrix;
...
货告诉我:
src/main.rs:3:5
|
3 |使用 fasta_multiple_cmp::get_filenames;
| ^^^^^^^^^^^^^^^^^^^ 使用未声明的板条箱或模块`fasta_multiple_cmp
我相信我明白了一些小事,但我迷路了。这是怎么回事?
感谢任何提示!
您的原始代码无法正常工作,因为 Rust 的 use
正在寻找要从中导入的箱子,而不仅仅是同一目录中的文件。
如果您想将逻辑分离到其他文件中,您需要将您的项目分解为二进制文件和库(又名-您的二进制文件可用于导入的板条箱)。
这可以在您的 Cargo.toml
中完成:
[package]
edition = "2018"
name = "my_project"
version = "1.2.3"
... your other settings ...
[[bin]]
edition = "2018"
name = "whatever_name_for_binary"
path = "src/main.rs"
这意味着您的二进制文件将被编译到 target
文件夹中名为“whatever_name_for_binary”的文件中。这也意味着您的非二进制文件充当一个库,并且可以通过使用 use my_project::some_module;
由您的二进制文件导入
因为您的项目现在将同时包含库和二进制文件,所以您需要指定何时 run/compile 二进制文件。
您通过 运行 完成此操作:cargo run --bin whatever_name_for_binary
有关详细信息,请参阅 Rust Book's Chapter on Modules。
我正在尝试构建单个 Rust 二进制可执行文件。在 src 目录中我有四个文件:
main.rs:
use fasta_multiple_cmp::get_filenames;
fn main() {
get_filenames();
}
mod.rs:
pub mod fasta_multiple_cmp;
pub mod build_sequences_matrix;
fasta_multiple_cmp.rs:
pub mod fasta_multiple_cmp {
...
pub fn get_filenames() {
let args: Vec<String> = env::args().collect();
...
build_sequences_matrix.rs:
pub mod build_sequences_matrix {
use simple_matrix::Matrix;
...
货告诉我:
src/main.rs:3:5 | 3 |使用 fasta_multiple_cmp::get_filenames; | ^^^^^^^^^^^^^^^^^^^ 使用未声明的板条箱或模块`fasta_multiple_cmp
我相信我明白了一些小事,但我迷路了。这是怎么回事?
感谢任何提示!
您的原始代码无法正常工作,因为 Rust 的 use
正在寻找要从中导入的箱子,而不仅仅是同一目录中的文件。
如果您想将逻辑分离到其他文件中,您需要将您的项目分解为二进制文件和库(又名-您的二进制文件可用于导入的板条箱)。
这可以在您的 Cargo.toml
中完成:
[package]
edition = "2018"
name = "my_project"
version = "1.2.3"
... your other settings ...
[[bin]]
edition = "2018"
name = "whatever_name_for_binary"
path = "src/main.rs"
这意味着您的二进制文件将被编译到 target
文件夹中名为“whatever_name_for_binary”的文件中。这也意味着您的非二进制文件充当一个库,并且可以通过使用 use my_project::some_module;
因为您的项目现在将同时包含库和二进制文件,所以您需要指定何时 run/compile 二进制文件。
您通过 运行 完成此操作:cargo run --bin whatever_name_for_binary
有关详细信息,请参阅 Rust Book's Chapter on Modules。