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

时间:2014-11-23 13:45:28

标签: c gcc cygwin

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

#include <stdio.h>

int main() 
{
    printf("Hello World!");
    return 0;
}

使用此makefile:

TARGET    = main.exe
OBJECT_01 = main.o
SOURCE_01 = main.c

$(TARGET): $(OBJECT_01)
    gcc -g -o $(TARGET) $(OBJECT_01) -lstdc++

$(OBJECT_01) : $(SOURCE_01)
    gcc -g -c $(SOURCE_01) -o $(OBJECT_01)

all : $(TARGET)

clean :
    -rm $(TARGET) $(OBJS)

它编译成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

1 个答案:

答案 0 :(得分:0)

不是直接的答案,但希望对您有意义和有帮助:您的Makefile太复杂了。 以下Makefile将很好地为您完成工作:

CFLAGS+=-g

.PHONY: all
all: main

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

(大多数Makefile教程很糟糕,我还没有看到好的教程 - 抱歉我不得不说这样的咆哮,但我真的相信它很重要而且真实。)