我想更改受 Eigen 限制的堆栈大小
我加
#define EIGEN_STACK_ALLOCATION_LIMIT 0
到我的cpp文件。
但是,无论我将 EIGEN_STACK_ALLOCATION_LIMIT
设置成什么值,编译输出总是包含
C:/mingw-w64/x86_64-7.1.0-win32-seh-rt_v5-rev0/mingw64/x86_64-w64-mingw32/include/Eigen/src/Core/util/Macros.h:799:0: note: this is the location of the previous definition #define EIGEN_STACK_ALLOCATION_LIMIT 131072
131072 正好是 128KB,没有变化!为什么?我错了吗?如何为 Eigen 正确设置 EIGEN_STACK_ALLOCATION_LIMIT
?另外,如何调整g++ stack size limit?
ps:我知道我不应该使用大的固定尺寸矩阵。但是使用 Dynamic 会神秘地中止编译,所以我正在尝试不同的方法。
最佳答案
在包含任何 Eigen header 之前,您需要定义 EIGEN_STACK_ALLOCATION_LIMIT
。最简单的方法是通过编译器参数:
g++ -DEIGEN_STACK_ALLOCATION_LIMIT=0 {... other arguments ...}
关于堆栈大小限制:关于堆栈溢出有几个相关问题。如果它们都不合适,请为此提出一个新问题。
关于c++ - Eigen :设置 EIGEN_STACK_ALLOCATION_LIMIT 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44076146/