Подтвердить что ты не робот

Как увеличить размер стека при компиляции с помощью Clang на OS X?

Можно ли указать размер стека с помощью clang++? Я не могу найти какие-либо параметры компилятора, которые позволили бы мне это сделать. Я использую OS X.

Примечание. Этот вопрос конкретно относится к Clang, а не к компилятору GCC.

4b9b3361

Ответ 1

Компонент, а не компилятор, отвечает за установку размера стека основного потока. Страница руководства для ld содержит следующее:

-stack_size size
    Specifies the maximum stack size for the main thread in a program. Without this
    option a program has a 8MB stack. The argument size is a hexadecimal number with
    an optional leading 0x. The size should be an even multiple of 4KB, that is the
    last three hexadecimal digits should be zero.

Например, чтобы указать стек из 16 МБ, вы можете сделать следующее:

[email protected]:~$ cc -Wl,-stack_size -Wl,0x1000000 -o test test.m
[email protected]:~$ otool -lV test | grep stack
 stacksize 16777216

Обратите внимание на префикс -Wl, на аргументы, переданные в cc, чтобы передать их в компоновщик.