使用 gcc 在 cmake 中设置堆栈大小
Setting stack size in cmake with gcc
我正在使用 gcc 9.2 和 cmake 3.15 在 Linux 上构建一个 C++ 项目,我需要增加默认堆栈大小。我之前找到了很多答案,但其中 none 似乎有效
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,1000000")
message(${CMAKE_CXX_COMPILER_ID})
message(${CMAKE_EXE_LINKER_FLAGS})
报错:
/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")
我正在使用 gcc 9.2 和 cmake 3.15 在 Linux 上构建一个 C++ 项目,我需要增加默认堆栈大小。我之前找到了很多答案,但其中 none 似乎有效
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,1000000")
message(${CMAKE_CXX_COMPILER_ID})
message(${CMAKE_EXE_LINKER_FLAGS})
报错:
/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")