Posez votre question Signaler

Compilation en C: ld returned 1 exit status

mancini - Dernière réponse le 22 mars 2010 à 21:39
bonjour,
j'apprend à programmer en C. J'utilise l'IDE de DEv- C++
voici mon code :

/*
Ci-dessous, ce sont des directives de préprocesseur.
Ces lignes permettent d'ajouter des fichiers au projet, fichiers que l'on appelle "librairies".
Grâce à ces librairies, on disposera de fonctions toutes prêtes pour afficher par exemple un message à l'écran
*/

#include <stdio.h>
#include <stdlib.h>
/*
Ci-dessous, vous avez la fonction principale du programme, appelée "main". C'est par cette fonction que tous les programmes commencent.
Ici, ma fonction se contente d'afficher "Bonjour" à l'écran, met en pause le programme puis s'arrête
*/


int main(int argc, char *argv[])
{
// debut de la fonction
//déclaration et initialisation d'une variable
long nombreDeVies= 5;
// déclaration et initialisation d'une constante
const long NOMBRES_DE_VIES_INITIALES=5;



printf("il vous reste %ld vies",nombreDeVies);
printf("***** BAM*******\n");//il vient de se prendre un grand coup sur la tête

nombreDeVies = 4; // Il vient de perdre une vie !
//printf("Ah desolé, il ne vous reste plus que %ld vies maintenant !\n\n", nombreDeVies);


system("PAUSE"); // Le programme se met en pause
return 0; // Le programme renvoie le nombre 0 puis s'arrête

}
quand j'essaye de compiler et d'exécuter
ca me donne cet erreur:
Permission denied
ld returned 1 exit status
merci pour tout aide.
Lire la suite 

Compilation en C: ld returned 1 exit status »

9 réponses
Réponse
+0
moins plus
Permission denied signifie qu'il n'arrive pas à écrire la fichier .exe
Quand j'ai cette erreur, c'est que le programme tourne déjà. Si ce n'ai pas le cas, c'est une histoire de droit d'écriture ou d'espace disque (quoi que en gral c'es 'no left space' l'erreur dans ce cas)
Voilà ce que j'en sait.
BC
Ajouter un commentaire
Réponse
+0
moins plus
Le post est donc résolu.
puisque la reponse ci dessus t'indique que le fichier .exe est non accessible. essaie donc d'enlever la protection "lecture seule"* du fichier. Cela se produit lorsque l'on grave de données sur un support physique tel qu'un CD...
* lecture seule signifie que l'utilisateur n'a pas les droit de modification. Le compilateur ne peut donc supprimer l'ancien *.exe ...
FredConfiguration: Windows XP Firefox 2.0
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

J'ai le même problème, au détail près. Sauf qu'il s'étend un peu plus loin...
INFOS :
- Quel que soit le programme que je fasses, je ne sais le compiler qu'une seule fois avec Devcpp (4.9.9.2). Pour pouvoir le compiler à nouveau il faut que je redémarre mon ordis... ce qui n'est évidemment pas très pratique.. :p
- Je compile tant que je veux avec Visual Studio 2005
- Tout ce passe comme si, après la 1ère compilation exécution, le programme tournait toujours, pourtant il ne fait plus partie de ma liste de tâches. => Impossible de le renommer moi-même, modifier, supprimer, etc...
- J'ai coupé "Explorer" et tenté de supprimer l'exe via cmd, mais pas possiblé non plus, l'accès est toujours refusé. Et tenter de changer les droits d'accès avec "cacls" ne fonctionne pas non plus.

Partant de là je supposes donc que mon programme ne se ferme pas correctement et que le SE continue à considérer qu'il est utilisé, empêchant ainsi les modifications sur le fichier. Bon, je me trompes peut-être, je ne fais que lancer une piste. Maintenant si quelqu'un a une idée, je prends avec plaisir. :-)

Merci d'avance!!

Jema
Ajouter un commentaire
Réponse
+0
moins plus
Quelques questions.
as tu les même problème avec d'autres programmes compiler avec DevCPP ?
Lorsque tu dit que tu peux ni renommer ni supprimer le .exe, c'est Windows qui refusse sous un pretexte bidon ?
Si les deux réponse sont oui, il est possible que le compilo soit mal installer (exe ou lib). donc le réinstaller.
si la réponse à la première est non, il est possible que ça vienne du source.
Ajouter un commentaire
Réponse
+0
moins plus
Alors, en fait c'est très bizarre... ca me donne l'impression que c'est un peu aléatoire cette histoire.... :p

Hier donc, j'avais en fait pour la deuxième fois ce problème, je ne pouvais compiler qu'une seule fois un programme source (pas un projet) que je faisais et j'ai eu ce problème au même moment avec plusieurs fichiers sources différents. Donc OUI aux deux questions.

Sauf que... :p Le soir le problème ne s'est pas posé pour un nouveau fichier que j'ai créé... et j'ai retenté avec un fichier qui ne fonctionnait pas le matin... et ça a marché... pourtant je n'ai pas redémarré depuis et je ne crois pas avoir fait qqch de particulier (pas touché aux propriétés par exemple). Néanmoins le problème continuait à se produire pour un fichier en particulier (peut-être d'autres, mais je n'ai pas tout retesté)

Et maintenant, aujourd'hui je redémarre... et le problème à disparu... tout va bien.

Donc prochaine fois que ça m'arrive (et là je suis prêt à parier que ça va revenir), je réinstallerai devcpp après avoir redémarrer pour voir si ca règle le problème. Sinon je reviendrai chercher de l'aide ici...

En tout cas merci pour ta réponse! Si par hasard tu as une autre idée, n'hésite pas! ;-)

Donc à bientôt (aproximativement) :p ;-)
sleep(nombres_de_secondes%rand());

Jema
Ajouter un commentaire
Réponse
+0
moins plus
Arg, le genre de problème "sporadique" vraiment énervant et difficile à résoudre.
Si le problème se représente, ouvre un nouveau message. Lance ton programme dans une fenetre console et regarde la variable d'environnement %ERRORLEVEL%
Question sup : as tu un antivirus ?
Ajouter un commentaire
Réponse
+0
moins plus
J'ai eu affaire au meme probleme, pour le résoudre j'ai utilisé unlocker (http://www.clubic.com/telecharger-fiche20237-unlocker.html) pour debloquer le .exe crée lors de la premiere compilation. Pour mon cas c'était le "résident de Spybot" qui était à l'origine du probleme.
Ajouter un commentaire
Réponse
+0
moins plus
Ce problème vient du faite que tu a compiler ton exe une fois et que tu l'a lancer et lorsque tu veut a nouveau le compiler tu a cette erreur car ton exe est executer et donc le fichier est en lecture seul ( c'est le même problème que lorsque tu ouvre un fichier quelconque qui est déjà ouvert sur un autre poste, tu l'ouvre en lecture seul) Certain IDE comme code block ne permette pas la compilation et d'autre comme dev c++ et qt4 disigneur t'insulute ^^ avec cette jolie erreur.

Pour conclure : FERMER VOS PROGRAMME AVANT DE LE RECOMPILER UNE NOUVELLE FOIS SINON ..........

Sur ce ! GL & HF
Ajouter un commentaire
Réponse
+0
moins plus
il faut que tu sauvegarde ton projet dans C:/utilisateur/nomutilisateur

nomutilisateur sera remplace par le nom de ta session sur l ordinateur
Ajouter un commentaire
Ce document intitulé « compilation en C: ld returned 1 exit status » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?