sz *_*ter 2 linker gcc g++ cmake
我正在使用gcc 9.2和cmake 3.15在 Linux 上构建 C++ 项目,并且需要增加默认堆栈大小。我之前找到了很多答案,但似乎都不起作用
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,1000000")
message(${CMAKE_CXX_COMPILER_ID})
message(${CMAKE_EXE_LINKER_FLAGS})
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误:
/usr/bin/ld: unrecognized option '--stack'
/usr/bin/ld: use the --help option for usage information
Run Code Online (Sandbox Code Playgroud)
我可以看到参数确实是在 cmake 输出中传递的:
GNU
-Wl,--stack,1000000
Run Code Online (Sandbox Code Playgroud)
而下面这个标志似乎根本不存在。
set(CMAKE_CXX_STACK_SIZE 1000000)
Run Code Online (Sandbox Code Playgroud)
解决了。感谢@squareskittles 的评论。它应该是:
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,stack-size=1000000")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4335 次 |
最近记录: |