Windows环境下增加c/c++编译堆栈空间的方法(CMD,DEV,CLion,VS2022)

Posted 小哈里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows环境下增加c/c++编译堆栈空间的方法(CMD,DEV,CLion,VS2022)相关的知识,希望对你有一定的参考价值。

文章目录

1、CMD

  • 编译指令:
    g++ a.cpp -o a.exe -Wl,--stack=268435456
    其中:268435456 = 256×1024×1024,即256MB

  • O2优化:
    -O2 -Wall -Wextra -Wl,--stack=536870912

2、DEV

  • →上方工具栏→ 工具[T] → 编译选项[C]
    → 勾选“编译时加入以下命令”并加入一句 -Wl,–stack=268435456
    → 点击下方“确定[O]”即可

3、CLion

  • 在CmakeLists.txt中加入下面这句
    set(CMAKE_EXE_LINKER_FLAGS "$CMAKE_EXE_LINKER_FLAGS -Wl,--stack,999999999999")

  • 即可成功运行

  • 参考如下配置:

    cmake_minimum_required(VERSION 3.15)
    project(TestProject)
    
    set(CMAKE_CXX_STANDARD 11)
    set(CMAKE_CXX FLAGS -fexec-charset=GBK)
    #set(CMAKE_CXX_FLAGS "$CMAKE_CXX_FLAGS -std=c++11")
    # 修改clion 内存
    MATH(EXPR stack_size "4*1024*1024")
    set(CMAKE_EXE_LINKER_FLAGS "-Wl,--stack,$stack_size")
    
    add_executable(TestProject 1_01Package.cpp)
    add_executable(2_wholePackage  2_wholePackage.cpp)
    add_executable(3_multiplexPackage 3_multiplexPackage.cpp)
    add_executable(4_mixPackage 4_mixPackage.cpp)
    add_executable(5_TwoDimensionPackage 5_TwoDimensionPackage.cpp)
    add_executable(6_GroupPackage 6_GroupPackage.cpp)
    add_executable(7_DependOnPackage 7_DependOnPackage.cpp)
    add_executable(8_GeneralizationPackage  8_GeneralizationPackage.cpp)
    add_executable(9_ChangePackage  9_ChangePackage.cpp)
    

4、VS2022-Cmake

  • 同CLion,在Cmakelists中加入配置

5、VS2022-C++控制台

  • 在项目中右键,打开项目属性

  • 修改配置属性,链接器,系统,堆栈保留大小。

  • 补充一个fopen报错的解决

以上是关于Windows环境下增加c/c++编译堆栈空间的方法(CMD,DEV,CLion,VS2022)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 c / c++ 程序中检测可能/潜在的堆栈溢出问题?

c语言的堆栈是怎么回事!!

配置Windows下编译运行C/C++过程

java jni 怎么在windows环境中编译成linux下的so文件

了解 C/C++ 中函数调用的堆栈框架? [关闭]

Windows 是不是有集成的内置 C/C++ 编译器包?