我一直在 MacOS 上的 Rust 中开发一个 winit 图形应用程序。我基于链接器 (ld) 的默认堆栈大小似乎是 8MB。
我想知道的是:
1. 图形应用程序等必须增加其目标系统上的默认堆栈大小有多普遍?8MB应该合理吗?
2. 我知道在 MacOS 上我不能将它作为子线程运行,我猜窗口库不支持子线程事件循环。如果更大的堆栈大小是合理的,那么在 Rust 中配置它的最佳平台无关方式是什么?我构建项目的唯一cargo rustc -- -C link-args=-Wl,-stack_size,0x100000000
方法是在构建依赖项之后调用。.cargo/config
如果我使用上述选项创建文件,则依赖项(如libc
失败)将堆栈大小设置为链接器参数仅适用于二进制文件。
我的尝试.cargo/crate
:
[build]
rustflags = ["-C", "link-args=-Wl,-stack_size,0x100000000"]
产生的错误:
Compiling libc v0.2.68
error: linking with `cc` failed: exit code: 1
|
...
= note: ld: -stack_size option can only be used when linking a main executable
clang: error: linker command failed with exit code 1 (use -v to see invocation)