如何在没有_alloca的情况下编译GCC?

shk*_*kim 5 gcc alloca visual-c++

出于某种原因,我应该使用gcc编译一个C文件,然后链接Visual C++ 2008项目.

(我使用了当前最新的gcc版本:cygwin gcc 4.3.4 20090804.)

但是有一个问题:gcc总是用_alloca分配一个大数组,

和VC链接器无法解析符号__alloca.

例如,

int func()
{
    int big[10240];
    ....
}
Run Code Online (Sandbox Code Playgroud)

虽然我没有明确地调用_alloca函数,但此代码会产生_alloca依赖关系.

(数组大小很重要.如果我改变10240 - > 128,一切都好)

我尝试了gcc选项-fno-builtin-alloca或-fno-builtin,但没有运气.

有可能让gcc不使用_alloca吗?(或调整门槛?)

and*_*fff 7

最好的办法是用VC++编译所有代码.如果这不可能..

您应该使用mingw gcc而不是cygwin.它旨在输出将与VC++运行时链接的代码,而不是cygwin库.特别是,它将调用VC++运行时函数__chkstk而不是__alloca.