我一直在阅读GCC简介 - 对于GNU编译器gcc和g ++
有一些例子,你有hello world程序分为3个不同的文件(main.c,hello_fn.c,hello.h)。在此示例中,它显示了makefile的使用。
CC=gcc
CFLAGS=-Wall
main: main.o hello_fn.o
clean:
rm -f main main.o hello_fn.o
他提出的观点是当你只改变一个文件时,例如main.c,使用make你只需要编译你在制作一个新的可执行文件时你已经改变的文件。
我成功创建了一个可执行文件但是当我在main.c中进行一个简单的更改时,它打印出来“Hello everyone!”而是“Hello world!”它会抛出Permission denied错误。此外,您不能再运行该可执行文件,它说“访问被拒绝。”
现在有趣的是它会将错误抛出大约10分钟左右,但是大约10分钟后它会成功编译!你可以在这里看到它:
C:\Users\Neven\Documents\C\GCC knjiga\New Hello>main
Hello, world!
C:\Users\Neven\Documents\C\GCC knjiga\New Hello>make
gcc -Wall -c -o main.o main.c
gcc main.o hello_fn.o -o main
c:/rtools/gcc-4.6.3/bin/../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i686-w64-m
ingw32/bin/ld.exe: cannot open output file main.exe: Permission denied
collect2: ld returned 1 exit status
make: *** [main] Error 1
C:\Users\Neven\Documents\C\GCC knjiga\New Hello>main
Access is denied.
我的问题是,为什么有一个你不能执行make的时间间隔?
答案 0 :(得分:3)
申请未结束。这就是您没有权限写入该进程的原因。可能在那10分钟之后,你打破了一些循环或者在输入“Hello World”后让它睡了600秒。