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

Windows下用MinGW编译C文件报错:无法执行指定程序

问题场景
  • 初始C代码可正常编译运行:
#include <stdio.h>

int main( void )  {
  printf( "Hello, world without a new line" );
  return 0;
}

运行输出为 Hello, without a new line.

  • 添加一行带换行的printf后:
#include <stdio.h>

int main( void )  {
  printf( "Hello, world without a new line" );
  printf( "Hello, world with a new line\n" );
  return 0;
}

使用命令 gcc filename.c -o filename.exe 编译后,运行时提示报错:The system cannot execute the specified program.

已做排查:环境变量PATH包含MinGW/bin路径,重启过程序排查内存问题,当前系统安装McAfee杀毒软件。

解决步骤
  1. 检查编译产物是否正常生成
    查看编译后是否生成了filename.exe,如果文件大小为0字节或远小于正常可执行文件(通常至少几KB),说明编译过程实际存在隐性错误,执行gcc filename.c -o filename.exe -v查看详细编译日志,确认链接阶段是否失败。

  2. 排查McAfee误拦截
    带换行的printf可能导致生成的可执行文件被McAfee的实时防护误判为恶意程序:

  • 打开McAfee控制台,查看隔离区是否存在filename.exe,如果有,恢复并添加到信任列表;
  • 临时禁用McAfee的实时防护,重新编译运行程序,验证是否能正常执行。
  1. 更换输出文件名重试
    执行编译命令时换个输出文件名,比如:
gcc filename.c -o test.exe

避免原有文件名被系统或杀毒软件标记。

  1. 验证MinGW组件完整性
    编写一个极简的带换行输出的测试程序:
#include <stdio.h>

int main() {
    printf("Test with newline\n");
    return 0;
}

编译运行,如果同样报错,说明MinGW可能存在组件损坏,尝试修复或重新安装MinGW。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:32:05