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

使用mingw32-make编译googletest时遇crtdbg.h缺失错误求助

解决MinGW编译Googletest时crtdbg.h缺失的问题

我之前也碰到过完全一样的问题,这是因为crtdbg.h是Visual Studio专属的C Runtime调试头文件,MinGW使用的是GNU的libc库,本身并不提供这个文件。解决起来很简单,只需要在CMake配置阶段添加一个编译选项,让Googletest跳过对MSVC调试功能的依赖即可:

具体操作步骤

  • 先删除之前生成的build目录(避免旧配置残留干扰)
  • 重新创建build目录并进入:
    mkdir build && cd build
    
  • 带参数执行CMake命令重新配置:
    cmake ../ -G "MinGW Makefiles" -DGTEST_HAS_CRT_DEBUG=OFF
    
  • 之后再运行mingw32-make就能正常编译了。

原理说明

Googletest内置了针对不同编译器的条件编译逻辑,当你设置GTEST_HAS_CRT_DEBUG=OFF时,它会自动屏蔽所有依赖crtdbg.h的代码块,转而使用MinGW兼容的调试实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:53:37