< 返回版块

Pikachu 发表于 2021-11-03 11:22

目前在写一个stm32单片机和电脑通信的小项目,需要同时写电脑端和单片机端的代码,所以不同的bin要编译到不同的平台。 除了在命令行里面用--target <triple>显式选择编译目标以外,还有什么办法为每个[[bin]]指定不同的目标吗?

PS:我正在尝试用cargo workspace。把不同平台的代码分开到两个package或许能解决问题,还在尝试中。

评论区

写评论
ZOwl 2021-11-05 16:17

cargo workspace是个比较优雅的方案

Aya0wind 2021-11-03 14:31

建议直接分两个crate,然后用一个shell脚本来控制,简单易懂。什么都只用一个cargo来做,实在没有必要。

Dengjianping 2021-11-03 14:09
[[bin]]
name = 'banary-a'
path = 'src/a.rs'
required-features = ['feature-a']

[[bin]]
name = 'banary-b'
path = 'src/b.rs'
required-features = ['feature-b']

cargo b --release --features feature-a cargo b --release --features feature-b

https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries

不知道能不能满足需求。

1 共 3 条评论, 1 页