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

Windows10 MSYS2 Clang链接GLFW出现LLD undefined symbol错误怎么解决

问题原因

你遇到的未定义符号全部属于Windows GDI图形接口的系统API,这些API由系统自带的gdi32.dll提供,你当前的链接命令中没有添加该系统库的链接参数,所以触发报错。
另外你存在一个误解:报错中提到的win32_window.c.obj已经被打包进你编译好的libglfw3.a静态库中,链接器已经成功找到该文件,报错是该obj调用的系统API没有对应的实现库,不是找不到该obj文件。

解决方案

在你的编译命令中补充-lgdi32参数即可,同时注意链接顺序:源文件/目标文件要放在依赖的库参数之前,静态库要放在它依赖的系统库之前。修改后的命令如下:

clang++ -Iinclude\ -Llib\ .\main.cpp -lglfw3 -lgdi32 -v

如果后续你开启了GLFW的其他功能,或者链接其他版本的GLFW出现新的未定义符号,可以根据报错内容补充对应的系统库参数,Windows平台静态编译GLFW的全量依赖库通常还有:-lopengl32(OpenGL支持)、-luser32、-lshell32、-ladvapi32、-lkernel32,你当前的默认链接参数已经包含后面几个,无需额外添加。

你之前注释glfwInit()可以正常编译的原因是:此时GLFW的代码没有被实际链接进最终程序,自然不会触发它依赖的系统库符号查找逻辑,所以不会报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:45:07