已经有一个问题,但与Rust 0.13有关,语法似乎已经改变.从当前文档中我了解到在堆上创建数组将是这样的:
fn main() {
const SIZE: usize = 1024 * 1024;
Box::new([10.0; SIZE]);
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个程序时,我收到以下错误:
thread '<main>' has overflowed its stack
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
当试图运行构建一个大的程序clap::App(在这里找到源代码)时,我得到一个stackoverflow : thread '<main>' has overflowed its stack.
到目前为止,我无法弄清楚如何指示rustc增加堆栈大小的强力解决方法.RUST_MIN_STACK似乎只适用于运行时,即使它似乎没有任何影响.
在生成代码时,我可能要做的就是将SubCommand创建移动到运行时,这是我接下来要尝试的.
但是,您是否看到了以不同方式解决此问题的方法?
如果构建的模式看起来容易出现这个问题,那么构建这个问题似乎非常重要,如果构建的结构只是很大并且足够嵌套.
git clone -b clap https://github.com/Byron/google-apis-rs
cd google-apis-rs
git checkout 9a8ae4b
make dfareporting2d1-cli-cargo ARGS=run
Run Code Online (Sandbox Code Playgroud)
请注意,您将需要我的准叉并在本地设置覆盖以允许使用最新的编译器进行构建.
? google-apis-rs git:(clap) rustc --version
rustc 1.1.0-nightly (97d4e76c2 2015-04-27) (built 2015-04-28)
Run Code Online (Sandbox Code Playgroud)