使用gcc设置cmake中的堆栈大小 我在Linux上使用GCC 9.2和CFASE 3.15构建C++项目,我需要增加默认堆栈大小。我以前找到过很多答案,但似乎没有一个有效 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,1000000") message(${CMAKE_CXX_COMPILER_ID}) message(${CMAKE_EXE_LINKER_FLAGS})

使用gcc设置cmake中的堆栈大小 我在Linux上使用GCC 9.2和CFASE 3.15构建C++项目,我需要增加默认堆栈大小。我以前找到过很多答案,但似乎没有一个有效 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,1000000") message(${CMAKE_CXX_COMPILER_ID}) message(${CMAKE_EXE_LINKER_FLAGS}),gcc,cmake,linker,g++,Gcc,Cmake,Linker,G++,它给出了一个错误: /usr/bin/ld: unrecognized option '--stack' /usr/bin/ld: use the --help option for usage information 我可以看到参数确实在cmake输出中传递: GNU -Wl,--stack,1000000 下面这个标志似乎根本不存在 set(CMAKE_CXX_STACK_SIZE 1000000) 解决了。感谢@squareskittles的评论。 应该是: set(CMAKE_EX

它给出了一个错误:

/usr/bin/ld: unrecognized option '--stack'
/usr/bin/ld: use the --help option for usage information
我可以看到参数确实在cmake输出中传递:

GNU
-Wl,--stack,1000000
下面这个标志似乎根本不存在

set(CMAKE_CXX_STACK_SIZE 1000000)

解决了。感谢@squareskittles的评论。 应该是:

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,stack-size=1000000")

您是否尝试改为传递
-Wl,堆栈大小=1000000
?它似乎使用了
堆栈大小
@squareskittles不起作用。
设置(CMAKE_EXE_LINKER_FLAGS“${CMAKE_EXE_LINKER_FLAGS}-Wl,堆栈大小=1000000”)
获取
/usr/bin/ld:找不到堆栈大小=1000000:没有这样的文件或目录
。将
=
更改为
也不起作用。很抱歉,我最初对文档有点困惑,看起来您可能需要在使用
堆栈大小之前使用
-z
标志,因此,也许可以这样做:`-Wl,-z堆栈大小=1000000@KamilCukOP说这个项目是“使用gcc 9.2的Linux”。是的,链接在我的第一条评论中。看见对于附加的
ld
“关键字”列表,需要在
-z
标志前面加上前缀。