我想用daemon
和client
创建一个项目,通过unix socket 连接。
客户端
和守护进程
需要两个二进制文件,那么我如何告诉 Cargo
从两个不同的来源构建两个目标?
为了增加一点幻想,我想为 daemon
的主要部分创建一个library
,并且只需要一个二进制文件来包装它并且通过套接字进行通信。
所以,我们有这种树结构:
├── Cargo.toml
├── target
| └── debug
| ├── daemon
│ └── client
└── src
├── daemon
│ ├── bin
│ │ └── main.rs
│ └── lib
│ └── lib.rs
└── client
└── bin
└── main.rs
我可以制作一个可执行文件来管理这两个问题,但这不是我想要做的,除非这是很好的做法。
最佳答案
您可以使用 [[bin]]
指定多个二进制文件,如前所述 here :
[[bin]]
name = "daemon"
path = "src/daemon/bin/main.rs"
[[bin]]
name = "client"
path = "src/client/bin/main.rs"
提示:如果您将这些文件放在 src/bin/daemon.rs
和 src/bin/client.rs
中,您将获得两个名为 daemon
和 client
as Cargo 会自动将 src/bin
中的所有文件编译成同名的可执行文件。仅当您不遵循此约定时,才需要像上面的代码片段一样指定名称和路径。
关于rust - 如何使用 Cargo 构建多个二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604010/