c - 这个错误是什么意思: `somefile.c:200: error: the frame s

在制作过程中,我看到如下错误:

cc1: warnings being treated as errors
somefile.c:200: error: the frame size of 1032 bytes is larger than 1024 bytes

行号指向具有如下签名的 c 函数的右大括号:

void trace(SomeEnum1 p1, SomeEnum2 p2, char* format, ...) {
    char strBuffer[1024];
    ...

该函数将一些内容打印到缓冲区中。

有谁知道这种类型的错误一般是什么意思?

最佳答案

我猜该例程中有一些大缓冲区是堆栈分配的;这可能会导致该函数的堆栈帧超过 1024 字节,这似乎是您正在构建的体系结构的一些编译器强制限制。可能的解决方案包括传递编译器标志以放松警告、扩大堆栈大小的上限或动态分配缓冲区。

关于c - 这个错误是什么意思: `somefile.c:200: error: the frame size of 1032 bytes is larger than 1024 bytes` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450845/

相关文章:

android - 如何以编程方式读取我的 Android apk 的构建日期?

build-process - 改进您的构建过程

go - 如何使用 Golang 包以外的名称构建可执行文件

python - 问题构建 cx_Oracle - libclntsh.so.11.1 => 未找到

build - Xcode 4 术语 "Build for testing/Build for ru

android - 使用没有运行的 Eclipse 重建 .apk

iphone - 为什么 Xcode 会在钥匙串(keychain)中自动安装(重复和过期的)证书?

python - 在不运行测试的情况下制作(从源代码安装)python

android - Visual Studio 2015 Xamarin 部署失败,没有任何错误消息

android - com.android.ddmlib.AdbCommandRejectedExc