2016-07-21 12 views
1

Neulich habe ich cygwin und gcc heruntergeladen, um C auf meinem Windows 7-Rechner zu lernen. Ich habe ein paar "Hallo Welt!" - Stil-Programme, kompilierte sie, etc., alles war in Ordnung. Heute aktualisierte ich auf Windows 10, und wenn ich jetzt zu kompilieren versuchen, ich diese Fehlermeldung:Nach dem Upgrade auf Windows 10 nicht mehr die Berechtigung zum Kompilieren über gcc

$ 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 

ich durch ein paar anderen Threads gesucht habe diesen Fehler zu diskutieren, habe aber nichts gefunden, was mein Problem löst. Viele Vorschläge waren Dinge, von denen ich keine Ahnung hatte, wie sie überhaupt zu machen waren! Zum Beispiel sagte eine Person in einem ähnlichen Thread: "In ein Verzeichnis verschieben, in dem Sie schreiben dürfen." Ich weiß nicht, wie ich ein Verzeichnis finde, in dem ich schreiben darf, oder wenn das sogar mein Problem ist. Ein Vorschlag, den ich als vielversprechend empfunden habe, war, in ein Elternverzeichnis zu wechseln und "chmod a + w [VERZEICHNISNAME]" auszuführen. Ich tat das, und habe diesen Fehler:

$ chmod a+w [DIRECTORY NAME] 
chmod: changing permissions of '[DIRECTORY NAME]': Permission denied 

Und ich kann nicht höher in diesem mit „CD ../“ gehen, so sieht es aus wie ich die Erlaubnis Leugnung über dem Laden alle haben.

Das cygwin-Verzeichnis selbst ist C: \ cygwin-64 \, falls das wichtig ist.

Danke für jede Hilfe, die Sie mir geben können!

+0

könnte ich falsch sein, aber Windows 10 ersetzt die Standard-Eingabeaufforderung mit Powershell oder so ähnlich. Haben Sie die normale Administrator-Eingabeaufforderung versucht? –

+0

Führen Sie Ihren Cygwin als Administrator aus. Wahrscheinlich war Ihre Benutzerkontensteuerung in Ihrer vorherigen Windows-Version deaktiviert. –

+0

Können Sie den vollständigen Pfad der kompilierten Dateien posten? – purplepsycho

Antwort

0

Ich habe Cygwin seit Jahren nicht mehr verwendet (und habe Win10 noch nie benutzt), aber ich werde es versuchen.

Was Sie um Hilfe bitten, wird durch mehrere Probleme erschwert. Einer von ihnen ist, Sie wissen nicht, welche Berechtigungen sind. Ein anderes ist Windows 10 möglicherweise Ihre Berechtigungen zurückgesetzt haben.

Betriebssysteme verfügen über Berechtigungsmodelle, die einschränken können, welche Aktionen ein Benutzer ausführen kann oder auf welche Dateien ein Benutzer zugreifen kann. Unter Windows wette ich, dass die UAC (dieser nervige Dialog, der um Erlaubnis bittet) blockiert, dass chmod funktioniert. (Ich gehe davon aus, dass Ihr Konto ein Superuser ist.) Der Fehler davor sieht so aus, als ob die Ordnerberechtigung "Schreibzugriff" nicht erlaubt, damit der Compiler "öffnet", eine Datei erstellt.

Der einfachste Weg, dies zu lösen, wäre, cygwin zu deinstallieren und neu zu installieren. Das Installationsskript sollte die richtigen Berechtigungen festlegen.

Kudos an Sie für die Verwendung von gcc in der Befehlszeile, um ein C-Programm zu kompilieren. Vielleicht möchten Sie in Erwägung ziehen, Eclipse oder NetBeans zu verwenden, um in Zukunft C-Programmierung zu erlernen. Sie haben benutzerfreundliche Debugger, die Ihnen helfen, den Status Ihres Programms zu verfolgen und Fehler zu beheben.

http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr

https://netbeans.org/features/cpp/index.html

+0

Hallo JBWyatt4. Danke für die Antwort. Das Ausführen von cygwin als Administrator hat das Problem behoben (ich habe das zunächst nicht versucht, da ich dachte, dass mein Konto bereits ein Administratorkonto war!), Also glaube ich nicht, dass ich es deinstallieren und neu installieren muss. Was ist ein Glück, denn die Installation von Cygwin und GCC war ein richtiger Prozess! Wie für Eclipse und Netbeans, danke für die Vorschläge, aber ich möchte jetzt versuchen, Programmierung ohne den Einsatz einer IDE zu lernen. Wenn es zu entmutigend ist, werde ich diese Programme ausprobieren. –

+0

wahrscheinlich hat das Upgrade das Sicherheitsmodell oder die Standardbenutzerberechtigung geändert – matzeri