По какой-то причине я должен использовать gcc для компиляции файла C, а затем ссылку на проект Visual C++ 2008.Как компилировать GCC без _alloca?
(я использовал текущую последнюю версию GCC: Cygwin GCC 4.3.4 20090804.)
Но есть одна проблема: НКУ всегда выделить большой массив с _alloca,
и VC линкер не может разрешить символ __alloca.
, например,
int func()
{
int big[10240];
....
}
этот код делает зависимость _alloca хотя я не вызвать функцию _alloca явно.
(размер имеет значение массива, если я изменить 10240 -.> 128, все в порядке)
Я попытался Gcc вариант -fno-встроено-ALLOCA или -fno встроенная_команда_оболочки, но не повезло.
Можно ли использовать gcc, чтобы не использовать _alloca? (или отрегулировать порог?)
Почему просто не использовать 'таНос()' явно? –
Это не мой письменный источник и несколько сложный для редактирования. и, возможно, оригинальный автор не хотел, чтобы штраф назывался malloc. – shkim
Назначение alloca в этом случае - убедиться, что стек достаточно велик для хранения этого массива. Компилятору Microsoft не требуется alloca; он испускает этот код датчика стека непосредственно в функцию. Зонд стека не нужен, когда местные жители малы. Что произойдет, если вы не используете -fno-builtin-alloca и -fno-builtin? –