如何在cargo run中覆盖[[bin]]的path参数?
解决方法
快速运行单个实验文件(无需修改Cargo.toml)
如果只是临时运行某个带main()的.rs文件,不需要依赖Cargo项目配置,直接用rustc编译运行即可:
rustc ./experimentXX.rs && ./experimentXX # Linux/macOS rustc ./experimentXX.rs && .\experimentXX.exe # Windows
长期便捷方案(一次配置,永久不用改Cargo.toml)
Cargo有个默认规则:src/bin/目录下的每个.rs文件都会被自动识别为独立的二进制目标,不需要在Cargo.toml里手动添加[[bin]]条目。
操作步骤:
- 在项目根目录创建
src/bin/文件夹 - 把所有实验文件(比如
experiment42.rs、test_demo.rs)移到这个目录下 - 运行指定文件时,直接执行:
cargo run --bin experiment42
新增实验文件时,直接把文件丢进src/bin/,然后用cargo run --bin <文件名>(注意不要带.rs后缀)就能运行,全程无需修改Cargo.toml。
为什么你的--config写法无效
Cargo的--config参数用于覆盖全局或项目的通用配置选项(比如编译目标、优化等级等),但**[[bin]]里的path属于项目的二进制目标定义,无法通过命令行参数临时覆盖**,所以这种思路本身不可行。
内容的提问来源于stack exchange,提问作者Igonato
相关产品推荐
相关产品推荐

