多くのスタックを必要とする C++ プログラムのためにそれを行う必要があります。g++ (OS X Lion に含まれています) を使用してコンパイルします。プログラムでそれを増やすにはどうすればよいですか?
質問する
4941 次
2 に答える
6
http://developer.apple.com/library/mac/#qa/qa1419/_index.htmlから
gccを使用して、-Wlを使用してリンクフラグをldに渡します。
gcc -Wl,-stack_size -Wl,1000000 foo.c
于 2012-04-18T17:18:03.077 に答える
2
getrlimit
/を使用できますsetrlimit
。これは、Linux、Mac OS X、およびその他の POSIX 風のオペレーティング システムで動作します。
#include <sys/resource.h>
int main (int argc, char **argv)
{
const rlim_t kStackSize = 16 * 1024 * 1024; // min stack size = 16 MB
struct rlimit rl;
int result;
result = getrlimit(RLIMIT_STACK, &rl);
if (result == 0)
{
if (rl.rlim_cur < kStackSize)
{
rl.rlim_cur = kStackSize;
result = setrlimit(RLIMIT_STACK, &rl);
if (result != 0)
{
fprintf(stderr, "setrlimit returned result = %d\n", result);
}
}
}
// ...
return 0;
}
于 2012-04-18T17:15:11.700 に答える