美文网首页
在 CMake 里设置 stack size

在 CMake 里设置 stack size

作者: 链球选手 | 来源:发表于2016-03-26 10:30 被阅读630次

基本上所有的操作系统都会限制进程使用的内存大小,好像 Windows 下默认的是 1MB,但是对于科学计算和其他应用来说,经常要申请较大的内存来储存数组、向量等,如果没有预先设置,在定义大的数组时,很可能会出现 segment fault,比如以下的代码:

double x[800][800]

如果你使用的是 Visual Studio,可以通过 “Linker -> System” 来设置stack commit sizestack reserve size 以增加进程使用的内存大小,需要注意的是,这种方法需要对所有的编译方案都进行设置才行,如果你想在 Debug 和 Release 方案中都增大使用的内存空间,就分别需要设置这两种状态的stack commit sizestack reserve size,操作其实还是挺方便的。

如果你使用的是一些跨平台的 IDE,比如 JetBrains 家的 Clion,本身不提供stack commit sizestack reserve size的设置选项,但是 Clion 使用 CMake 作为默认的编译系统,完全可以通过 CMake 来设置链接器的属性,比如我想申请使用 999,999KB 的空间,那么可以在 CMake 里加上:

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,999999")

设置 CMake 的链接器属性应该是对所有的编译方案都有效的,也就是 Debug 和 Release 这些不需要重复设置,比起 Visual Studio 更加方便一点。

原文地址:fangs.in

相关文章

网友评论

      本文标题:在 CMake 里设置 stack size

      本文链接:https://www.haomeiwen.com/subject/xqydlttx.html