【发布时间】:2021-02-25 20:51:55
【问题描述】:
我已经在 Windows 7 上安装了 MinGW 我确实写了一个 hello world 应用程序...
#include <stdio.h>
void main()
{
printf("Hallo, Welt!\n");
};
我确实跑了
gcc Hello.c -o Hello
这确实创建了一个名为 Hello.exe 的 exe 应用程序 我确实运行了它,它应该打招呼
我确实在文件中添加了注释,保存它,然后在 CMD 中以管理员身份重新运行编译器 然后我得到了错误
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot open output file Hello.exe: Permission denied
collect2.exe: error: ld returned 1 exit status
所以我确实尝试在 Windows 文件资源管理器中删除该文件 确实弹出了一个窗口,并要求我使用管理员权限删除文件 所以我确实允许这个管理员权限,因为我是管理员 然后它确实弹出了另一条消息...我需要计算机本身的一些权限 我不知道我现在应该做什么...我是计算机的管理员,我无法删除文件...如果我右键单击文件并打开文件设置,我看到管理员应该拥有所有权限。
我看到的文件没有运行...文件没有被任何东西锁定
出了什么问题...是因为代码或编译器还是窗口问题...我怎样才能杀死这个文件?
编辑: 该文件未运行...在任务管理器中显示任何用户的所有任务时,该文件不会以任何方式显示并且未运行。
杀毒软件已关闭,对问题没有影响 我也试过关闭防火墙
文件一直无法杀死。
【问题讨论】:
-
通常当您无法删除 EXE 文件时,是因为它正在运行。检查任务管理器?
-
可能与病毒有关(隔离?)...重新启动(关闭所有应用程序)并尝试再次删除...暂时禁用防病毒。
-
你的重启想法可能会奏效......但必须有原因和解决方案......我不想在任何小的编辑之后重新启动,然后我才能编译......问题一定有一些可解决的原因。可能是因为它没有返回值?但主要是无效的?也许 Windows 正在做一些 oder gcc 的事情?
-
请注意,根据 C 标准,
main的返回类型应为int。 -
@Michael 请注意,根据 C99,5.1.2.2.3(程序终止),
void main将向宿主环境返回未指定的终止状态,否则程序有效
标签: c windows gcc compiler-errors locked-files