이전 버전의 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
시그윈이니까,ulimit
스택 크기를 늘릴 수 없습니다.
답변1
./configure -cc "gcc -Wl,--stack,16777216"
컴파일하는 동안 항상 인수를 사용하여 실행하려면 gcc
실행합니다(원하는 다른 옵션도 포함). -Wl,--stack,16777216
그런 다음 을 실행 make clean
하고 make world.opt
다시 실행하세요. make clean
새로운 스택 크기 옵션을 사용하여 다시 생성하려면 이전에 생성된 모든 바이너리(바이트 컴파일된 파일은 아니지만 더 쉬움)를 정리해야 합니다 .
Ocaml 메이크파일은 다양한 컴파일러를 사용하여 빌드 프로세스의 다양한 부분에 대해 다양한 옵션을 제공할 수 있으므로 일반적인 CC
규칙을 사용하지 않습니다. CFLAGS
컴파일러를 구축하는 것은 약간 이상한 경향이 있습니다.
답변2
표준 규칙을 따르는 makefile의 경우 make CC='gcc -fwhatever
또는 를 사용할 수 있습니다 make CFLAGS='-fwhatever'
. (C++의 경우 CXX
및 CXXFLAGS
)