我在Windows 7上安装了MinGW我确实写了一个helloworld应用程序。。。
#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文件资源管理器中删除了这个文件确实弹出了一个窗口,要求我使用管理员权限删除该文件所以我确实允许这个管理员权限,因为我是管理员然后它确实弹出了另一条消息。。。我需要电脑本身的一些权限我不知道我现在该怎么办。。。我是电脑管理员,我不能删除文件。。。如果我右键单击文件并打开文件设置,在那里我看到的权限管理员应该拥有所有权限。
在我看来,文件没有运行。。。文件没有被任何东西锁定
怎么了。。。是因为代码或编译器,还是因为窗口。。。我怎样才能删除这个文件?
编辑:文件没有运行。。。在Taskmanager中,当显示任何用户的所有任务时,文件不会以任何方式显示,也不会运行。
防病毒软件已关闭,对问题没有影响我也试过关闭的防火墙
该文件始终无法访问。
我找到了一个解决方案。。。看起来,直到现在。。。
我确实删除了C:\MinGW我确实以管理员身份重新安装了MinGW,在安装过程中,我确实检查了为所有用户安装它的选项我在系统设置中检查了Windows路径变量,只是为了确保它仍然存在于C:\MinGW\bin中。
然后我再次尝试编译Hello.c文件,但错误再次出现。
因此,我确实为源C:\My_C_Files
创建了一个新文件夹。现在,我在windows文件资源管理器中右键单击它,并在文件夹属性中使用文件/文件夹权限。我给了用户广泛的权限,给了管理员所有的权限,比如允许创建子文件夹读取权限删除写入读取更改,以及只给用户和管理员最多的权限。我还将所有权交给了用户和管理员所有这些权利我都适用于文件夹的任何子内容,即使它是空的。然后我把*.c源代码文件复制到这个新文件夹中。我确实再次尝试从CMD控制台编译它,第一次,因为它总是有效的,然后又一次,问题总是出现。。。这一次它确实工作了,并一次又一次地覆盖*.exe文件,以确保我确实删除了*.exe并重新编译了它,它仍然工作。
结论:这与源或目标文件夹的文件夹权限及其内容的权限和/或所需文件夹的所有权有关。
现在我不再有ld.exe或collect2.exe-权限错误的返回1退出状态与gcc。
希望这些信息能帮助其他陷入这个错误的人,我在谷歌上看到了一些,大多数人说应用程序正在运行,但事实并非如此,其他人建议启用一些windows服务,但对我没有帮助,其他人谈论权限,但大多是模糊的提示,一些人谈论符号链接和其他疯狂的东西。这是我发现的,用户和管理员对文件夹和内容的windows权限。
感谢每一个帮助我的人。