visual-studio-Cmake更改堆栈大小

有没有办法从Cmake更改堆栈大小?
我只发现一个forum thread提及CMAKE_CXX_STACK_SIZE,但找不到该命令的文档.理想情况下,该命令对Visual Studio C和gcc均适用.
最佳答案
我目前没有VS,但是以下三个CMake命令在MinGW / GCC上都对我有用(用您在add_executable()中输入的内容替换< target>):

target_link_libraries(<target> PRIVATE "-Wl,--stack,10000000")

要么

set_target_properties(<target> PROPERTIES LINK_FLAGS -Wl,--stack,10000000)

要么

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

请注意,根据CMake documentation,每个这些都应仅添加链接器标志,而不是替换任何已设置的标志.

在VS中,看起来您应该将/ WACK,-stack替换为/ STACK :(在下文中进行更多说明),并使用if / else为每个编译器使用不同的命令.

关于CMAKE_CXX_STACK_SIZE,值得一读的this thread说,该命令是

in the implementation of the VS generator for historical reasons but is not intended as a first-class way to set the stack size. Instead just pass /STACK:… as a linker flag using target_link_libraries, or the LINK_FLAGS target property, or in CMAKE_EXE_LINKER_FLAGS

实际上,可以在帖子中链接的the page(不确定是否看到它)以及this one中看到这样的命令:

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:10000000")

转载注明原文:visual-studio-Cmake更改堆栈大小 - 代码日志