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

如何在Ubuntu中使用/usr/include头文件交叉编译Windows程序?

解决Windows交叉编译(mingw)下GLFW/GLEW头文件冲突问题

问题根源

你用apt-get安装的GLFW和GLEW是Linux平台的库文件与头文件,和mingw交叉编译所需的Windows版本不兼容。强行把/usr/include加入编译路径,会让mingw编译器同时读取Linux系统头文件(比如stdio.h)和自身带的Windows版头文件,两者实现差异极大,必然引发冲突。

正确解决步骤

  • 放弃apt安装的Linux版库,下载mingw-w64专属的预编译GLFW/GLEW库
    分别从GLFW、GLEW官方渠道下载对应x86_64架构的mingw预编译包,解压后会得到独立的include(头文件)和lib(库文件)目录。
  • 编译时仅指定mingw库的路径,完全避开系统的/usr/include
    示例编译命令:
    x86_64-w64-mingw32-gcc your_app.c -o your_app.exe \
      -I./glfw-mingw/include \
      -I./glew-mingw/include \
      -L./glfw-mingw/lib-mingw-w64 \
      -L./glew-mingw/lib/Release/x64 \
      -lglfw3 -lglew32 -lopengl32 -lgdi32
    
  • 部分Linux发行版提供mingw版库的包管理支持,可以直接安装mingw-w64-x86_64-glfw和mingw-w64-x86_64-glew这类包,安装后编译器会自动识别路径,无需手动配置。
  • 绝对不要把/usr/include加入mingw编译器的包含路径,这是引发冲突的核心原因。

额外提醒

链接时必须加上Windows平台必备的系统库(比如opengl32、gdi32),否则会出现链接失败的问题;同时确保代码中没有依赖Linux特有的头文件或函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:22:13