2017-05-19 8 views
0

내가 내 CPP 파일에 아이겐 : 설정 EIGEN_STACK_ALLOCATION_LIMIT 내가 아이겐</p> <p>에 의해 제한 스택 크기를 변경하려면

#define EIGEN_STACK_ALLOCATION_LIMIT 0 

를 추가 작동하지 않습니다. /mingw-w64/x86_64-7.1.0-win32-seh-rt_v5-rev0/mingw64/x86_64- :

그러나, 아무리 내가 EIGEN_STACK_ALLOCATION_LIMIT로 설정 어떤 값, 컴파일 출력은 항상

C 포함되어 있지 않습니다 W64-mingw32// 아이겐/SRC/코어/폴더의 유틸리티/Macros.h 포함 : 799 : 0 : 참고 :이 이전 정의의 위치 #DEFINE EIGEN_STACK_ALLOCATION_LIMIT 131072

131072 정확히 128킬로바이트이다, 아무것도 변화! 왜? 내가 틀렸어? Eigen에 대해 정확히 EIGEN_STACK_ALLOCATION_LIMIT을 설정하는 방법? 또한 g ++ 스택 크기 제한을 조정하는 방법은 무엇입니까?

ps : 큰 고정 크기 매트릭스를 사용해서는 안된다는 것을 알고 있습니다. 하지만 다이나믹을 사용하면 편집이 이상하게 중단되므로 다른 방법을 시도하고 있습니다.

답변

2

고유 헤더를 포함하기 전에 EIGEN_STACK_ALLOCATION_LIMIT을 정의해야합니다. 그렇게하는 가장 쉬운 방법은 컴파일러 매개 변수입니다 :

g++ -DEIGEN_STACK_ALLOCATION_LIMIT=0 {... other arguments ...} 

스택 크기 제한과 관련하여 : 스택 오버 플로우에 대한 몇 가지 관련 질문이 있습니다. 그들 중 누구도 적합하지 않다면, 새로운 질문을하십시오.