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

使用libcurl与MinGW32编译Windows C代码后遇16位程序不兼容问题

解决Windows下MinGW编译libcurl程序的兼容性报错问题

问题根源

你使用的编译命令包含-c参数,该参数的作用是仅编译源代码生成目标文件(.o),不执行链接步骤。因此你生成的simple.exe并非真正的可执行程序,而是未链接的目标文件,Windows系统识别错误,才弹出“不支持的16位应用程序”提示。

修复步骤

  • 修正编译命令:移除-c参数,同时添加-lcurl指定链接libcurl库,完整命令如下:
gcc -I "c:\curl\include" -L "c:\curl\lib" -o simple.exe simple.c -lcurl
  • 说明:

    • 去掉-c后,GCC会完成编译+链接的完整流程,生成真正的32位可执行程序;
    • -lcurl用于告诉链接器关联libcurl库,否则会出现函数未定义的链接错误。
  • 确认架构匹配:你使用的是32位(i686)的MinGW-W64,必须确保下载的libcurl是32位Windows版本,若混用64位libcurl,会出现架构不兼容问题。

  • 处理动态依赖:如果使用的是动态链接版libcurl,需要将对应的libcurl.dll复制到simple.exe所在目录,或添加到系统PATH环境变量中,否则运行时会提示找不到依赖库。

验证运行

编译完成后直接运行simple.exe,程序会正常向https://example.com发起HTTP请求,若请求失败会在终端输出对应错误信息。

内容的提问来源于stack exchange,提问作者Cláudio Rafael

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:50:32