无法运行使用 gcc (minGW) 编译的 .exe 文件

标签 c gcc mingw msys

我有这个 C 代码:

#include <stdio.h>

int main(void)
{

    int courses = 1, groups, students = 54, average_pr_group;

    /* The variable groups is uninitialized */

    average_pr_group = students / groups;

    printf("Groups: %d\n", groups);

    printf("There are %d students pr. group in %d course(s)\n", average_pr_group, courses);

    return 0;
}

现在我使用 shell (cmd) 中的命令来编译它:

gcc test.c -o test.exe -lm -Wall

它编译得很好,但是当我尝试通过 Windows 资源管理器运行生成的 .exe 时,出现此错误: Error running .exe file compiled with gcc

相比之下,我可以很好地编译并运行这段代码:

# include <stdio.h>
int main()
{
    printf("Hello World");
    return 0;
}

我已将 MinGW 安装在 C:\MinGW 这是我的用户路径变量: User path variable

我可以使用 msys 很好地运行 .exe,它是为了承受此类错误而构建的吗?

最佳答案

变量groups可能为零,因此您除以零:

average_pr_group = students / groups;

关于无法运行使用 gcc (minGW) 编译的 .exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25874772/

相关文章:

c - 如何修复运行我的代码后出现的段错误错误 11?

c++ - 使用 DllMain 函数创建 Windows 共享库 (MinGW + CMake)

c - C中的编译器如何获得数组第一个元素的地址和整个数组的地址之间的差异?

c++ - 如何在 GCC 中将重复或相乘的字符串文字合并为一个

c - Flatten multi-level double linked list in C - 关于Append函数的疑惑

C:运算符和函数结果的问题

c - 在 RTOS 中安排帧的传输

linux - 为 linux 3.2.x 与基于 2.6.x 的系统编译的代码之间存在巨大的时间差异

linux - 了解事件是否发生(运行 gtk_dialog_run() 时)

c++ - C++ 编译器如何处理在条件语句中声明的类型?