La compilazione con GCC su Windows 7: \ mingw32 \ bin \ ld.exe: non può aprire il file di output a.exe
-
27-09-2019 - |
Domanda
Questo è ciò che ottengo quando si cerca di compilare un semplice programma ciao mondo con gcc.
c:\>gcc hello.c
hello.c:9:2: warning: no newline at end of file
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot open output file a.exe
: Permission denied
collect2: ld returned 1 exit status
Ha qualcosa a che fare con Windows 7 privilegi di amministratore?
Se si crea il file di output, ma non può essere aperto, in cui si trova?
Scusate se questo è troppo di una domanda noobie. Sono stato con Dev-C ++ per compilare il mio codice sorgente fino ad ora. Ho provato googling attorno all'errore ma tutto ho trovato è stato il file è già aperto, ma non si fa menzione di tale exe nel task manager.
Edit: Anche il file si trova in C: \ ciao.c
sarò in grado di farlo se ho posto in altra unità?
quando ho posto il file in D: \ e cercare il cambiamento a qualsiasi altra unità utilizzando cd d:. \ Non cambia l'unità
Soluzione
Sì, è un problema di autorizzazioni, non necessario eseguire la finestra della riga di comando in modalità Amministratore.
non funzionano in C: \
Copiare il file in una cartella sotto i miei documenti, o di una sottocartella di C :, o di un'altra unità.
In alternativa, eseguire la console in modalità Amministratore se si vuole veramente a lavorare nella radice di C:
Per passare al D: mentre in C :, basta digitare D: (si utilizza CD solo quando già sulla corretta)
Altri suggerimenti
Il caso più comune è che il programma può essere ancora in esecuzione in background, forse impiccato in un ciclo infinito. Si può provare a cercare il processo nella lista dei processi (premere Alt + Ctrl + Del ) e uccidendolo.
Il g ++. Exe-comando nella build-log negli spettacoli CodeBlocks-IDE il comando
con un percorso aggiuntivo:. C:\MinGW\lib
, che è sbagliato
-
Se si copia il comando per un cmd-finestra (nella directory del progetto) senza la
C:\MinGW\lib
il compilatore funziona. Quando si copia il comando come indicato inCodeBlocks-Buil-log
non riesce, con lo stesso messaggio nella cmd-finestra. -
Date un'occhiata al
Settings > Compiler > Search Directories > Linker
. Hai avuto modo di eliminare il ciC:\MinGW\lib
, ma il bug è, che non viene eliminato se lo si fa una volta. Hai avuto modo di ripeterlo e allora funziona.