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

使用MinGW g++9.2编译olcPixelGameEngine时dwmapi.h缺失求助

解决MinGW编译olcPixelGameEngine时的dwmapi.h缺失及编译命令错误问题

嘿,我发现你现在遇到两个关键问题:一是误用了Linux平台的编译命令在Windows的MinGW环境下,二是找不到dwmapi.h头文件。咱们一步步来解决:

先把编译命令改对

你当前用的g++ -o YourProgName YourSource.cpp -lX11 -lGL -lpthread -lpng -lstdc++fs -std=c++17是给Linux系统设计的编译参数,Windows下的MinGW根本不存在X11、GL这类Linux专属库,直接用这个命令肯定会出问题。针对MinGW,你得换成Windows平台的链接库,试试这个命令:

g++ -o YourProgName YourSource.cpp -std=c++17 -lgdi32 -luser32 -lkernel32 -lpng -lstdc++fs

搞定dwmapi.h: No such file or directory错误

dwmapi.h是Windows系统中控制桌面窗口管理器的头文件,属于Windows API的一部分,MinGW默认应该自带,但可能你的组件没装全或者路径配置有问题:

  • 检查并补全MinGW组件
    打开MinGW安装管理器,确认是否安装了mingw32-win32api-dev组件——它包含了几乎所有Windows系统的头文件和库。如果没装,勾选这个组件,点击「Installation」→「Apply Changes」完成安装即可。

  • 确认头文件路径并手动指定(如果需要)
    找到你的MinGW安装目录(比如C:\MinGW),进入mingw32\include文件夹看看有没有dwmapi.h。如果文件存在但编译时找不到,就用-I参数手动指定这个路径:

    g++ -o YourProgName YourSource.cpp -I"C:\MinGW\mingw32\include" -std=c++17 -lgdi32 -luser32 -lkernel32 -lpng -lstdc++fs
    

    如果文件夹里压根没有dwmapi.h,说明你的Win32 API组件没装全,回到第一步重新安装对应组件就行。

  • 如果你用的是MinGW-w64
    要是你装的是MinGW-w64(和旧版MinGW不是同一工具),得确保安装时勾选了包含win32api的选项。它的头文件路径一般是C:\mingw-w64\x86_64-xxx-win32-seh\include(xxx替换成你的具体版本号),同样可以用-I参数把这个路径加入编译命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:17:33