Por alguna razón, debería usar gcc para compilar un archivo C, luego vincularlo con el proyecto Visual C++ 2008.¿Cómo compilar GCC sin _alloca?
(he utilizado la última versión actual de gcc: gcc cygwin 4.3.4 20090804.)
Pero hay un problema: gcc siempre asignar una gran matriz con _alloca,
y VC enlazador no puedo resolver el símbolo __alloca.
por ejemplo,
int func()
{
int big[10240];
....
}
este código hace que la dependencia _alloca aunque no me llama a la función _alloca explícitamente.
(el tamaño importa si cambio de matriz 10240 -.> 128, todo muy bien)
me trataron opción de gcc--fno incorporado alloca-o--fno orden interna, pero no hubo suerte.
¿Es posible hacer que gcc no use _alloca? (¿o ajustar el umbral?)
¿Por qué no usar 'malloc()' explícitamente? –
No es mi fuente escrita y algo compleja de editar. y tal vez el autor original no quería que la penalización llamara a malloc. – shkim
El propósito de alloca en este caso es asegurarse de que la pila sea lo suficientemente grande como para contener esta matriz. El compilador de Microsoft no necesita alloca; Emite este código de sonda de pila directamente en la función. La sonda de pila no es necesaria cuando los locales son pequeños. ¿Qué sucede si no usa -fno-builtin-alloca y -fno-builtin? –