0

我已经在 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 文件资源管理器中删除文件,确实弹出了一个窗口,并要求我使用管理员权限删除文件,所以我确实允许此管理员权限,因为我是管理员,然后它确实弹出了另一条消息.. .我需要计算机本身的一些权限我不知道我现在应该做什么...我是计算机的管理员,我无法删除文件...如果我右键单击文件并打开文件设置和权限我看到管理员应该拥有所有权限。

我看到的文件没有运行......文件没有被任何东西锁定

出了什么问题...是因为代码还是编译器还是窗口问题...我怎样才能杀死这个文件?

编辑:文件没有运行......在任务管理器中显示任何用户的所有任务时,文件不会以任何方式出现并且没有运行。

防病毒已关闭,它对问题没有影响我也尝试关闭防火墙

该文件保持无法杀死。

4

1 回答 1

0

我找到了一个解决方案......看起来,直到现在......

我确实删除了 C:\MinGW 我确实以管理员身份重新安装了 MinGW,在安装过程中我确实检查了为所有用户安装它的选项 我在系统设置中检查了 Windows 路径变量,以确保它是C:\MinGW\bin 仍然存在。

然后我再次尝试编译文件 Hello.c 并且错误再次出现。

所以我确实为源 C:\My_C_Files 创建了一个新文件夹
现在我确实在 Windows 文件资源管理器中右键单击它,然后在文件夹属性中单击它以使用文件/文件夹权限。我授予用户广泛的权限和管理员的所有权限,例如允许创建子文件夹读取权限删除写入读取更改,并且只授予用户和管理员全部权限。我还将所有权授予用户和管理员所有这些权利我确实适用于文件夹的任何子内容,即使它是空的。然后我确实将我的 *.c 源代码文件复制到了这个新文件夹中。我确实再次尝试从 CMD 控制台编译它,第一次,因为它总是工作,然后再次,问题总是出现......这次它确实工作并一次又一次地覆盖 *.exe 文件,以确保我确实删除了 *.exe 并重新编译它,它仍然有效。

结论:它与源或目标文件夹的文件夹权限及其内容的权限和/或所需文件夹的所有权有关。

现在我不再有 ld.exe 或 collect2.exe - 权限错误作为 gcc 返回的 1 退出状态。

可能此信息将帮助其他遇到此错误的人,我在 google 上看到了一些,大多数人说应用程序正在运行,但事实并非如此,其他人建议启用一些对我没有帮助的 windows 服务,其他人谈论许可但主要是模糊的提示,一些谈论符号链接和其他疯狂的东西。这是我发现的,用户和管理员对文件夹和内容的 Windows 权限。

感谢所有试图帮助我的人。

于 2020-11-14T20:55:44.437 回答