我正在尝试设置旧版本的 ocaml,但收到一条错误消息,提示我需要增加堆栈大小。我发现在 cygwin 中执行此操作的唯一方法涉及使用 gcc 运行附加参数,但我遵循的说明让我使用 makefile 来编译程序。由于我没有手动输入 gcc 命令,因此我不确定在哪里添加该参数。
这是安装过程的粘贴:http://pastebin.com/j2Q45pKm
$ make world.opt
…
The current stack size limit is too low (2026k)
You must increase it with one of the following commands:
Under sh, bash, zsh: ulimit -s 3072
Under csh, tcsh: limit stacksize 3072
Makefile:621: recipe for target 'checkstack' failed
make: *** [checkstack] Error 3
这是我试图传递的论点:https://stackoverflow.com/questions/156510/increase-stack-size-on-windows-gcc
因为这是Cygwin,ulimit
无法增加堆栈大小。
答案1
./configure -cc "gcc -Wl,--stack,16777216"
如果您希望在编译过程中始终gcc
使用参数运行,请运行(加上您想要的任何其他选项)。-Wl,--stack,16777216
之后,运行make clean
,然后make world.opt
再次运行。您需要清理所有以前生成的二进制文件(不是字节编译文件,但这样做更容易make clean
),以便使用新的堆栈大小选项重新生成它们。
Ocaml makefile 不使用通用CC
和CFLAGS
约定,因为它可以使用不同的编译器,为构建过程的不同部分提供不同的选项。构建编译器往往有点奇怪。
答案2
对于遵循标准约定的 makefile,您可以使用make CC='gcc -fwhatever
或make CFLAGS='-fwhatever'
。 (对于 C++,它是CXX
和CXXFLAGS
)