fatal error C1060: compiler is out of heap space
错误的意思是堆栈内存不足,但是我的工程项目比较小,没有很深的递归程序块。所以不可能会耗尽编译器申请的内存,在cmake中打印编译参数:
MESSAGE(STATUS ${CMAKE_C_FLAGS})
MESSAGE(STATUS ${CMAKE_CXX_FLAGS})
发现参数中有/Zm1000的编译器选项,该选项会使得C编译器去申请大约750M的内存,但是比较新的编译器已经可以自增的申请内存 了,所以该参数的意义不是很大。既然知道了错误原因,那么解决该问题就比较容易 了,只需要删除或者修改该命令行参数就行:
如果VS项目构建成功了,但是在编译的时候依然报堆栈内存不足的错误,那么需要在项目属性中修改编译的命令行参数(Zm),如图:
![如何解决cmake 在windows构建VS工程的时候出现fatal error C1060的错误-LMLPHP 如何解决cmake 在windows构建VS工程的时候出现fatal error C1060的错误-LMLPHP]()
/Zm参数应该是cmake的一个BUG,期待在后续的发行版本中解决这个问题
MESSAGE(STATUS ${CMAKE_C_FLAGS})
MESSAGE(STATUS ${CMAKE_CXX_FLAGS})
发现参数中有/Zm1000的编译器选项,该选项会使得C编译器去申请大约750M的内存,但是比较新的编译器已经可以自增的申请内存 了,所以该参数的意义不是很大。既然知道了错误原因,那么解决该问题就比较容易 了,只需要删除或者修改该命令行参数就行:
点击(此处)折叠或打开
- PROJECT(projectname)#注意,后面的脚本一定要放在PROJECT之后,不然会出错
- STRING(REPLACE "/Zm1000" "/Zm100" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
- STRING(REPLACE "/Zm1000" "/Zm100" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
/Zm参数应该是cmake的一个BUG,期待在后续的发行版本中解决这个问题