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

调用glfwInit()触发段错误(错误码0xc0000135)求助

解决GLFW初始化段错误(错误码0xc0000135)的排查步骤

核心原因

错误码0xc0000135的本质是系统找不到程序依赖的动态链接库(DLL),结合你的场景,大概率是GLFW的DLL或其依赖库未被正确识别。

具体排查与解决步骤

1. 确保使用匹配的MSYS2终端

你安装的是mingw-w64-x86_64-glfw,必须打开MinGW64终端(而非MSYS或UCRT64终端)编译运行程序——不同终端的环境变量、库路径不兼容,会直接导致DLL查找失败。

2. 确认GLFW DLL存在

检查路径C:\msys64\mingw64\bin\glfw3.dll是否存在,若缺失则重新安装GLFW:

pacman -S --reinstall mingw-w64-x86_64-glfw

3. 让系统找到DLL的三种方法

方法一:添加MinGW64 bin目录到系统PATH

将C:\msys64\mingw64\bin添加到系统环境变量的PATH中,重启所有终端和IDE后,系统会自动在该路径检索DLL。

方法二:手动复制DLL到程序目录

直接把C:\msys64\mingw64\bin\glfw3.dll复制到你的可执行文件所在文件夹(比如CMake生成的build目录下的exe同级目录)。

方法三:CMake自动复制DLL

在你的CMakeLists.txt中添加以下代码,编译时自动将GLFW的DLL同步到程序输出目录:

# 获取GLFW的DLL路径
get_target_property(GLFW_DLL_PATH glfw IMPORTED_LOCATION_RELEASE)
# 编译完成后复制DLL到程序目录
add_custom_command(TARGET 2DGameEngine POST_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy_if_different
                   ${GLFW_DLL_PATH}
                   $<TARGET_FILE_DIR:2DGameEngine>)

4. 验证编译环境正确性

打开MinGW64终端,执行以下命令确认环境匹配:

  • 检查编译器版本(需为MinGW64版本):
    g++ --version
    
    输出应包含x86_64-w64-mingw32-g++。
  • 检查GLFW的链接参数(需指向MinGW64库路径):
    pkg-config --libs glfw3
    
    输出应类似-L/mingw64/lib -lglfw3。

5. 调整CMake配置细节

  • 规范target_link_libraries写法,合并为一行并添加PRIVATE关键字:
    target_link_libraries(2DGameEngine PRIVATE glfw OpenGL::GL)
    
  • 若CMake无法自动找到GLFW,手动指定安装路径:
    find_package(glfw3 3.3 REQUIRED PATHS "C:/msys64/mingw64")
    

6. 用命令行最简编译测试

跳过CMake,直接在MinGW64终端编译你的测试代码(需带上glad.c):

g++ test.cpp glad.c -o test.exe -lglfw3 -lopengl32

运行./test.exe,若能正常执行,说明问题出在CMake或IDE的环境配置;若仍报错,重新安装GLFW并检查系统PATH配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:10:33