C error: size of array is too large
C error: size of array is too large
我试过编译这段 C 代码:
#define MAX_INT 2147483647
int main()
{
int vector[MAX_INT];
return 0;
}
我正在使用 MinGW 和 MSYS 项目(即 MinGW/MSYS)提供的 C 编译器。 MinGW 编译器是 "gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)",这是最新版本,具有 win32 线程模型,而 MSYS 编译器是 "gcc version 3.4.4 (msys special)",具有 posix 线程模型。
即MAX_INT常量值设置在"limits.h"header提供的常量“__INT_MAX__”中。
如何避免这个问题并编译我最简单的代码?
您的堆栈不会那么大以包含数组这是主要问题。
尝试在编译
时按照 Increase stack size when compiling with mingw? 中的建议使用以下行设置堆栈大小
gcc -Wl,--stack,N
where N is stack size. E.g. gcc -Wl,--stack,4194304
另外如评论中所述,您可能必须针对 64 位进行编译,并且需要那么多 RAM 或可能需要一个大页面文件。
我试过编译这段 C 代码:
#define MAX_INT 2147483647
int main()
{
int vector[MAX_INT];
return 0;
}
我正在使用 MinGW 和 MSYS 项目(即 MinGW/MSYS)提供的 C 编译器。 MinGW 编译器是 "gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)",这是最新版本,具有 win32 线程模型,而 MSYS 编译器是 "gcc version 3.4.4 (msys special)",具有 posix 线程模型。
即MAX_INT常量值设置在"limits.h"header提供的常量“__INT_MAX__”中。
如何避免这个问题并编译我最简单的代码?
您的堆栈不会那么大以包含数组这是主要问题。 尝试在编译
时按照 Increase stack size when compiling with mingw? 中的建议使用以下行设置堆栈大小gcc -Wl,--stack,N
where N is stack size. E.g. gcc -Wl,--stack,4194304
另外如评论中所述,您可能必须针对 64 位进行编译,并且需要那么多 RAM 或可能需要一个大页面文件。