【问题标题】:Permission denied when using Make in GCC在 GCC 中使用 Make 时权限被拒绝
【发布时间】:2014-02-23 18:03:24
【问题描述】:

我一直在阅读 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 中进行简单的更改以打印“大家好!”时而是“你好世界!”它抛出 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?

【问题讨论】:

  • 请不要张贴(链接到)文字图片;直接发布文本。

标签: c gcc compilation makefile


【解决方案1】:

申请没有结束。这就是您无权写入该进程的原因。可能在这 10 分钟之后,您在输入“Hello World”后中断了某个循环或使其休眠 600 秒。

【讨论】:

  • 这里是代码 main.c pastebin.com/EXh2Kkhz hello_fn.c pastebin.com/eyBkFeee header.h pastebin.com/HYHWqaMW 如何让它结束?
  • 在任务管理器中收到Access is denied消息时是否有进程调用main.exe
  • 我查了,没有。
  • 但是您正在检查所有用户的列表?你忘了说你是以管理员身份运行 cmd.exe 吧?
  • 是的,我正在检查所有用户的列表。我没有注意我是如何运行 cmd.exe 的。我打开开始,搜索 cmd 并按 ENTER。我尝试以管理员身份运行它,但没有任何变化。
猜你喜欢
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
相关资源
最近更新 更多