GCC无法在Cygwin中编译可运行的Hello World

GCC无法在Cygwin中编译可运行的Hello World,c,gcc,cygwin,C,Gcc,Cygwin,我正在尝试编译一个简单的hello world程序: #include <stdio.h> int main() { printf("Hello World!"); return 0; } 它可以很好地编译成main.exe,但是当我尝试使用./main.exe运行它时,它会说文件不存在并删除它 我是不是少了些cygwin的包裹什么的 Upd:以下是完整的终端命令序列: andrey@andrey-PC ~/gcc-test $ ls main.c main.

我正在尝试编译一个简单的hello world程序:

#include <stdio.h>

int main() 
{
    printf("Hello World!");
    return 0;
}
它可以很好地编译成main.exe,但是当我尝试使用./main.exe运行它时,它会说文件不存在并删除它

我是不是少了些cygwin的包裹什么的

Upd:以下是完整的终端命令序列:

andrey@andrey-PC ~/gcc-test
$ ls
main.c  main.exe  main.o  makefile

andrey@andrey-PC ~/gcc-test
$ make clean
rm main.exe

andrey@andrey-PC ~/gcc-test
$ make
gcc -g -o main.exe main.o

andrey@andrey-PC ~/gcc-test
$ ls
main.c  main.exe  main.o  makefile

andrey@andrey-PC ~/gcc-test
$ ./main.exe
-bash: ./main.exe: No such file or directory

andrey@andrey-PC ~/gcc-test
$ ls
main.c  main.o  makefile

这不是一个直接的答案,但希望对您有帮助:您的Makefile太复杂了。 以下Makefile将非常适合您:

CFLAGS+=-g

.PHONY: all
all: main

.PHONY: clean
clean:
        $(RM) main.o main

大多数MaFraseFrutar教程都是坏的,我还没有看到一个好的教程-抱歉我不得不说这样的一个咆哮,但是我真的相信它是重要的和真实的。< /P>如果它是一个C程序,你为什么把它与C++库链接起来?你的Mag文件看起来很好,不知道你为什么用-LSTDC++来链接。gcc将为C程序自动链接C库。您最好删除-lstdc++。编译后,它确实会生成main.exec,对吗?@BlueMoon删除-lstdc++时会发生完全相同的情况。@andreyg我不是建议删除-libstd++来解决这个问题。这是一个相关的注释,因为您有C代码。在执行main.exec之前,你真的看到main.exe被生成了吗?可能是某些病毒检查程序出错了吗?如果将Makefile中的main.exe替换为main,结果会怎样?Cygwin仍将以main.exe的名称生成它,我不知道为什么它会有所不同,但也许它仍然值得一试。只是疯狂的猜测…不仅不是直接的答案,而且根本不是对问题的答案。

CFLAGS+=-g

.PHONY: all
all: main

.PHONY: clean
clean:
        $(RM) main.o main