2010-08-10 6 views
3

C'est ce que j'obtiens en essayant de compiler un simple programme de bonjour avec gcc.Compilation avec GCC sous Windows 7: mingw32 bin ld.exe: impossible d'ouvrir le fichier de sortie a.exe

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 

Cela a-t-il quelque chose à voir avec les privilèges d'administration de Windows 7?

Si le fichier de sortie est en cours de création mais ne peut pas être ouvert, où se trouve-t-il? Désolé, c'est trop une question noobie. J'ai utilisé Dev-C++ pour compiler mon code source jusqu'à maintenant. J'ai essayé de googler autour de l'erreur mais tout ce que j'ai pu trouver était le fichier est déjà ouvert, mais il n'y a aucune mention d'un tel exe dans le gestionnaire de tâches.

Edit: De plus, le fichier se trouve dans C: \ hello.c

Vais-je être en mesure de le faire si je place dans un autre lecteur?

Lorsque je place le fichier à D: \ et que j'essaie de le changer à un autre lecteur en utilisant cd d: \ ne change pas le lecteur.

+1

Pour modifier le lecteur D, utilisez 'cd/d d: \' ou simplement 'd:'. Mais non, vous ne voulez pas travailler à la racine d'un lecteur. Vous pouvez créer vous-même un répertoire avec 'mkdir' ou utiliser l'explorateur si vous avez des problèmes - l'explorateur devrait vous aider à gérer les erreurs d'autorisation avec les invites UAC. – Rup

+0

@Rup Merci d'avoir répondu. – stirredo

Répondre

6

Oui c'est un problème d'autorisations, vous ne devez pas exécuter la fenêtre de ligne de commande en mode Admin.

ne fonctionnent pas dans C: \

Copiez le fichier dans un dossier sous mes documents, ou un sous-dossier C :, ou un autre lecteur.

Ou, exécutez la console en mode Administrateur si vous voulez vraiment travailler à la racine de C:

Pour passer à D: alors que dans C :, il suffit de taper D: (vous utilisez CD seulement quand déjà le lecteur correct)

+1

Merci, qui l'a résolu. – stirredo

0

Le cas le plus courant est que votre programme fonctionne toujours en arrière-plan, éventuellement suspendu sur une boucle sans fin. Vous pouvez essayer de rechercher le processus dans la liste de processus (appuyez sur Alt + Ctrl + Del) et de le tuer.

+0

J'ai essayé le gestionnaire de tâches, mais il n'y avait aucune mention de l'exe. J'ai écrit ça dans la description. Merci d'avoir répondu. – stirredo

-2

La commande ex + g ++ dans le journal de construction de CodeBlocks-IDE montre la commande avec un chemin supplémentaire: C:\MinGW\lib, ce qui est faux.

  1. Si vous copiez la commande dans une fenêtre de cmd (dans le répertoire de votre projet) sans C:\MinGW\lib le compilateur fonctionne. Lorsque vous copiez la commande comme indiqué dans CodeBlocks-Buil-log, il échoue, avec le même message dans la fenêtre cmd.

  2. Regardez le Settings > Compiler > Search Directories > Linker. Vous devez supprimer le C:\MinGW\lib là, mais le bogue est, qu'il n'est pas supprimé si vous le faites une fois. Vous devez le répéter et ensuite cela fonctionne.

Questions connexes