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

Windows下MinGW编译MSQUIC示例程序报错,求正确编译方案

解决MinGW编译MSQUIC示例的错误问题
  • 问题原因:MSQUIC官方预编译库基于MSVC编译器构建,MinGW的C语言ABI、宏定义与MSVC存在差异,导致_Pre_defensive_这类MSVC专属宏未定义、函数指针类型不兼容等问题。

  • 正确编译方案:

    1. 编译时添加MSVC兼容宏定义,指定符合MSQUIC要求的C语言标准
    2. 显式链接MSQUIC库及Windows系统依赖库
    3. 确保运行时依赖的DLL文件路径正确
  • 最终编译命令:

    g++ sample.c -std=c11 -D_WIN32_WINNT=0x0A00 -DQUIC_API_MSC_VERSION=1930 -I msquic/include -L msquic/lib -lmsquic -lkernel32 -ladvapi32 -o main.exe
    
  • 参数说明:

    • -std=c11:指定C语言标准为C11,匹配MSQUIC的代码依赖
    • -D_WIN32_WINNT=0x0A00:指定目标Windows版本为Windows 10,满足MSQUIC的系统要求
    • -DQUIC_API_MSC_VERSION=1930:模拟MSVC 19.30的宏环境,解决_Pre_defensive_等宏未定义问题
    • -lmsquic -lkernel32 -ladvapi32:链接MSQUIC库及Windows系统必要库,避免符号未定义错误
  • 后续操作:编译完成后,将msquic/bin/msquic.dll复制到main.exe所在目录,否则程序无法正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:27:13