You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下CMake搭配G++编译出现_Unwind_Resume未定义引用问题求助

问题根源

_Unwind_Resume是GCC运行时库(libgcc、libstdc++)中的异常处理符号,你用命令行编译时显式加了-static-libgcc -static-libstdc++参数,强制静态链接这些库所以能成功;但CMake构建时没传递这些参数,导致链接器找不到对应符号。

解决方法

1. 直接在CMakeLists.txt中添加静态链接参数

修改CMakeLists.txt,加入静态链接GCC运行时的编译选项,和命令行参数保持一致:

cmake_minimum_required(VERSION 3.28)
project(explicit_test)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 添加静态链接GCC运行时库的参数
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")

add_executable(my_exe explicit.cpp)

2. 通过CMakePresets.json配置传递参数

如果依赖预设切换编译器,在对应GCC/Clang的preset里添加编译选项:

{
  "version": 3,
  "configurePresets": [
    {
      "name": "gcc-release",
      "displayName": "GCC Release",
      "description": "GCC 14.2.0 静态链接运行时",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/gcc-release",
      "cacheVariables": {
        "CMAKE_CXX_COMPILER": "g++",
        "CMAKE_CXX_STANDARD": "23",
        "CMAKE_CXX_FLAGS": "-static-libgcc -static-libstdc++",
        "CMAKE_BUILD_TYPE": "Release"
      }
    },
    {
      "name": "clang-release",
      "displayName": "Clang Release",
      "description": "Clang 静态链接GCC运行时",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/clang-release",
      "cacheVariables": {
        "CMAKE_CXX_COMPILER": "clang++",
        "CMAKE_CXX_STANDARD": "23",
        "CMAKE_CXX_FLAGS": "-static-libgcc -static-libstdc++",
        "CMAKE_BUILD_TYPE": "Release"
      }
    }
  ]
}

3. 针对Clang的额外处理

如果切换到Clang编译仍报错,可能是Clang没找到GCC的库路径,可在CMakeLists.txt中补充:

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
  # 替换成你的MinGW-W64 lib目录实际路径
  link_directories("D:/mingw64/lib")
endif()
验证步骤
  1. 删除项目下的build目录,清空CMake缓存
  2. 在VSCode中按Ctrl+Shift+P,选择CMake: Configure重新加载配置
  3. 执行构建,检查链接错误是否消失

内容的提问来源于stack exchange,提问作者qiyuewuyi2333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:57:35