我想创建一个带有public static int[] getArray(int size){
int[] array = new int[size];
Random random = new Random();
for (int i = 0; i < size; i++){
array[i] = random.nextInt();
}
return array;
}
public static void kryoWriteArray(int[] array) throws FileNotFoundException {
Kryo kryo = new Kryo();
Output output = new Output(new FileOutputStream("array.txt"));
output.writeInts(array);
output.close();
}
和daemon
的项目,通过unix套接字连接。
client
和client
需要两个二进制文件,那么如何告诉daemon
从两个不同的来源构建两个目标?
为了增加一点幻想,我想为Cargo
的主要部分添加一个library
,并且只需要一个二进制文件来包裹它并通过套接字进行通信。
所以,我们有这种树架构:
daemon
我可以制作一个管理这两个问题的可执行文件,但这不是我想要做的,除非它是非常好的做法。
答案 0 :(得分:65)
您可以使用[[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
的可执行文件,因为Cargo会编译src/bin
中的所有文件1}}自动生成具有相同名称的可执行文件。只有在不遵循此约定的情况下,才需要在上面的代码段中指定名称和路径。
答案 1 :(得分:4)
另一种方法是使用here中提到的工作区功能。由于我们可以拥有多个库,因此这将提供更大的灵活性。项目结构示例:
.
├── Cargo.toml
├── cli
│ ├── Cargo.toml
│ └── src
│ └── main.rs
├── core
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── daemon
│ ├── Cargo.toml
│ └── src
│ └── main.rs
├── gui
│ ├── Cargo.toml
│ └── src
│ └── main.rs
└── rpc
├── Cargo.toml
└── src
└── lib.rs
根Cargo.toml
的内容:
[workspace]
members = ["cli", "core", "daemon", "gui", "rpc"]
答案 2 :(得分:0)
如果您有一个庞大的项目,另一种格式可能是复制Crates.io source code所做的事情,例如:
src中的主库,带有一个包含可执行文件的Bin文件夹。 然后从可执行文件中调用主库箱。
这样,您的库就可以集中化,以便在缓存时更容易查找内容。