前几天我下载了cygwin和gcc,以便在我的Windows 7机器上学习C.我做了一对" Hello World!" -style程序,编译它们等等,一切都很好。今天我升级到Windows 10,现在当我尝试编译时,我收到此错误消息:
$ make [FILENAME]
cc -Wall -g [FILENAME].c -o [FILENAME]
/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/../../../../x86_64-pc-cygwin/bin/ld: cannot open output file [FILENAME].exe: Permission denied
collect2: error: ld returned 1 exit status
make: *** [<builtin>: [FILENAME]] Error 1
我已经通过其他几个讨论此错误的线程进行了搜索,但没有找到解决我问题的方法。很多建议都是我不知道怎么做的事情!例如,一个人在类似的帖子中说,&#34;移动到允许你写的目录。&#34;我不知道如何找到我允许写的目录,或者甚至是我的问题。我发现似乎有希望的一个建议是转到父目录并运行&#34; chmod a + w [DIRECTORY NAME]&#34;。我做到了,并得到了这个错误:
$ chmod a+w [DIRECTORY NAME]
chmod: changing permissions of '[DIRECTORY NAME]': Permission denied
我无法使用&#34; CD ../"所以看起来我已经得到了允许拒绝整个商店的许可。
如果重要的话,cygwin目录本身就是C:\ cygwin-64 \。
感谢你们给我的任何帮助!
答案 0 :(得分:0)
我多年没有使用cygwin(并且从未使用过Win10),但我会试一试。
您要求帮助的内容因多个问题而变得复杂。其中一个是你不知道什么是权限。另一个是Windows 10可能已经重置您的权限。
操作系统具有权限模型,可以限制用户可以执行的操作或用户可以访问的文件。在Windows上,我打赌UAC(那个讨厌的对话请求许可)可能会阻止chmod工作。 (我假设您的帐户是超级用户。)之前的错误看起来像文件夹权限不允许“写”&#39;访问编译器以打开&#39;创建文件。
解决此问题的最简单方法是卸载并重新安装cygwin。安装脚本应该设置适当的权限。
感谢您在命令行中使用gcc编译C程序。您可能需要考虑使用Eclipse或NetBeans来帮助您将来学习C编程。它们具有用户友好的调试器,可帮助您跟踪程序的状态并修复错误。
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr