GCC无法在Cygwin中编译可运行的Hello World
我正在尝试编译一个简单的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.
#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