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

Windows10下GCC编译GTK3程序报错ld.exe: cannot find -ldwmapi如何解决

问题原因

当前报错是因为你调用的是独立安装的MinGW 6.3.0版本的gcc,该版本的默认库目录中缺少libdwmapi.a导入库,即使系统System32中存在dwmapi.dll,链接阶段也需要对应的导入库才能完成编译。你安装的MSYS2 MinGW32环境中已经包含了该库,只是编译时没有调用对应环境的工具链。

解决方案
  • 方案1(推荐):直接使用MSYS2自带的MinGW32工具链编译
    1. 打开MSYS2安装目录下的mingw32.exe启动32位MinGW终端
    2. 执行命令安装缺失的基础工具:pacman -S --needed mingw-w64-i686-gcc mingw-w64-i686-pkg-config
    3. 进入代码所在目录后,直接执行简化后的编译命令即可,无需手动填写所有头文件和库路径:
    gcc main.c -o mikey.exe $(pkg-config --cflags --libs gtk+-3.0)
    
  • 方案2:继续使用现有独立MinGW编译
    从MSYS2目录中复制C:\msys64\mingw32\i686-w64-mingw32\lib\libdwmapi.a到你现有MinGW的库目录C:\mingw\lib\下,再重新执行你的bat编译脚本即可。
额外优化建议

你当前VSCode的c_cpp_properties.json配置的是MSVC编译器路径,和你实际用的GCC编译环境不匹配,可以修改以下配置项保证智能提示正常:

  • 修改compilerPath为C:\\msys64\\mingw32\\bin\\gcc.exe
  • 修改intelliSenseMode为windows-gcc-x86
  • 可以删掉手动配置的所有includePath,GCC会自动识别头文件路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:39:03