Problème de compilation linux gcc
Résolu
vik_
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
vik_ Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
vik_ Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Problème de compilation linux gcc
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
- R-linux - Télécharger - Sauvegarde
- Linux mint 22.1 - Accueil - Linux
9 réponses
Le fichier doit etre nommé main.c (dans ton cas)
place ce fichier dans ton repertoire Home (cd ~)
gcc main.c -o prog
./prog
...
re demain je changerais le nom, là il est en main .x
Pourvu que ça fonctionne .
en tout merci à vous,
si vous avez des tuyaux ou autre pour compiler je prend .Je galère pas pour écrire le prog, suffit de bien lire dans les bouquins être bien attentif et voir les vidéo sur you tube . Mais pour la compilation ça c'est autres chose, c'est toujours là que ça coince .D'ailleurs je m prends la tête alors que code block fait tout automatiquement, mais je ne sais pas je préfère tout savoir donc y compris compiler manuellement . Peut être qu'il serait plus sage aussi d'apprendre correctement linux et la console , et programmer sur windows avec code blocks le temps d'être à l'aise . Si ça ne fonctionne pas je ferais comme ça, je vais peut être trop vite aussi .
place ce fichier dans ton repertoire Home (cd ~)
gcc main.c -o prog
./prog
...
re demain je changerais le nom, là il est en main .x
Pourvu que ça fonctionne .
en tout merci à vous,
si vous avez des tuyaux ou autre pour compiler je prend .Je galère pas pour écrire le prog, suffit de bien lire dans les bouquins être bien attentif et voir les vidéo sur you tube . Mais pour la compilation ça c'est autres chose, c'est toujours là que ça coince .D'ailleurs je m prends la tête alors que code block fait tout automatiquement, mais je ne sais pas je préfère tout savoir donc y compris compiler manuellement . Peut être qu'il serait plus sage aussi d'apprendre correctement linux et la console , et programmer sur windows avec code blocks le temps d'être à l'aise . Si ça ne fonctionne pas je ferais comme ça, je vais peut être trop vite aussi .
Merci a vous pour toutes les réponses,
j'ai réussi a trouver , il fallait que je renomme mon fichier et que je ré enregistre mon programme .
et ensuite faire
gcc main.c; ./main.x
point virgule important ,
pour changer le nom en main .x en a .out
gcc main.c; ./a.out tout simplement .
fallait juste que je renomme l'ex.
encore merci, je met en clos .
j'ai réussi a trouver , il fallait que je renomme mon fichier et que je ré enregistre mon programme .
et ensuite faire
gcc main.c; ./main.x
point virgule important ,
pour changer le nom en main .x en a .out
gcc main.c; ./a.out tout simplement .
fallait juste que je renomme l'ex.
encore merci, je met en clos .
maintenant j'ai ça
ciircle@ciircle:~/Bureau$ gcc -o main.c main.x; ./main.x
main.x: file not recognized: File format not recognized
collect2: ld a retourné 1 code d'état d'exécution
bash: ./main.x: Permission non accordée
ciircle@ciircle:~/Bureau$
j'ai pourtant fait sudo -i
Si une personne sais comment je doit faire pour que je puisse compiler .
Merci
ciircle@ciircle:~/Bureau$ gcc -o main.c main.x; ./main.x
main.x: file not recognized: File format not recognized
collect2: ld a retourné 1 code d'état d'exécution
bash: ./main.x: Permission non accordée
ciircle@ciircle:~/Bureau$
j'ai pourtant fait sudo -i
Si une personne sais comment je doit faire pour que je puisse compiler .
Merci
Bonsoir,
essaies avec ce bout de code
#include <stdio.h>
int main ()
{
/* afficher le mot bonjour et sauter une ligne */
printf("bonjour !!!\n");
return 0; // obligatoire
}
Puis,
gcc bonjour.c -o appli_bonjour
./appli_bonjour
essaies avec ce bout de code
#include <stdio.h>
int main ()
{
/* afficher le mot bonjour et sauter une ligne */
printf("bonjour !!!\n");
return 0; // obligatoire
}
Puis,
gcc bonjour.c -o appli_bonjour
./appli_bonjour
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut
j'essaye direct et te dit si c'est ok .
je ne comprend pas n'empêche ça fonctionné bien pourtant ,des que j'ai voulu recréer un prog dans mon éditeur de texte ça a commencer à merdouillé .
merci
j'essaye direct et te dit si c'est ok .
je ne comprend pas n'empêche ça fonctionné bien pourtant ,des que j'ai voulu recréer un prog dans mon éditeur de texte ça a commencer à merdouillé .
merci
re,
j'ai commencer par la ligne chmod ça a rien fait .
j'ai copier ton programme
#include <stdio.h>
int main ()
{
printf("bonjour !!!\n");
return 0;
}
gcc bonjour.c -o appli_bonjour
./appli_bonjour
en réponse dans la console :
ciircle@ciircle:~/Bureau$ gcc bonjour.c -o appli_bonjour
gcc: erreur: bonjour.c: Aucun fichier ou dossier de ce type
gcc: erreur fatale: pas de fichier à l'entrée
compilation terminée.
là je ne sais vraiment pas, je peux aller sur code block sinon mais je t'avoue je préfère compiler manuellement, autant tout faire pour apprendre le C .
sinon je peux pas supprimer gedit et le réinstallé ? ça peut peut être venir de là , enfin je dit ça mais là je ne trouve vraiment pas pourquoi il veut pas compilé .
merci en tout cas !
j'ai commencer par la ligne chmod ça a rien fait .
j'ai copier ton programme
#include <stdio.h>
int main ()
{
printf("bonjour !!!\n");
return 0;
}
gcc bonjour.c -o appli_bonjour
./appli_bonjour
en réponse dans la console :
ciircle@ciircle:~/Bureau$ gcc bonjour.c -o appli_bonjour
gcc: erreur: bonjour.c: Aucun fichier ou dossier de ce type
gcc: erreur fatale: pas de fichier à l'entrée
compilation terminée.
là je ne sais vraiment pas, je peux aller sur code block sinon mais je t'avoue je préfère compiler manuellement, autant tout faire pour apprendre le C .
sinon je peux pas supprimer gedit et le réinstallé ? ça peut peut être venir de là , enfin je dit ça mais là je ne trouve vraiment pas pourquoi il veut pas compilé .
merci en tout cas !
sudo chmod +x ton_programme.c
gcc ton_programme.c
et ensuite
./a.out
a.out c'est le résultat de ce que tu viens de compiler. On transforme le programme en code objet soit pour l'utiliser directement soit dans la plus part des cas pour de la compilation séparée.
exemple de compilation séparée :
gcc -c programme-fonction.c
gcc -c main.c
gcc programme-fonction.o main.o -o mon-programme
avec un header qui contient le prototype de tes fonctions faites maison et qui est inclus dans le main et le programme-fonction. (mettre impérativement une structure conditionnelle dans le préprocesseur pour éviter les inclusions infinies ^^)
gcc ton_programme.c
et ensuite
./a.out
a.out c'est le résultat de ce que tu viens de compiler. On transforme le programme en code objet soit pour l'utiliser directement soit dans la plus part des cas pour de la compilation séparée.
exemple de compilation séparée :
gcc -c programme-fonction.c
gcc -c main.c
gcc programme-fonction.o main.o -o mon-programme
avec un header qui contient le prototype de tes fonctions faites maison et qui est inclus dans le main et le programme-fonction. (mettre impérativement une structure conditionnelle dans le préprocesseur pour éviter les inclusions infinies ^^)
re ,
toujours pareil :
ciircle@ciircle:~/Bureau$ sudo gcc -o main.x main.c; ./main.x
[sudo] password for ciircle:
gcc: erreur: main.c: Aucun fichier ou dossier de ce type
gcc: erreur fatale: pas de fichier à l'entrée
compilation terminée.
mon fichier est sur mon bureau sinon , je fait clique droit sur le bureau ouvrir terminal ,le chemin est déjà spécifier .Vraiment je ne comprend pas, tout fonctionner pourtant bien avant .Nautilus qui merde peut être , .
je verrais demain je dois me déco,
ça doit être un problème de fichier mal localisé la console le spécifie , mais le chemin est pourtant bon bref c'est compliqué là .
Merci a vous .
toujours pareil :
ciircle@ciircle:~/Bureau$ sudo gcc -o main.x main.c; ./main.x
[sudo] password for ciircle:
gcc: erreur: main.c: Aucun fichier ou dossier de ce type
gcc: erreur fatale: pas de fichier à l'entrée
compilation terminée.
mon fichier est sur mon bureau sinon , je fait clique droit sur le bureau ouvrir terminal ,le chemin est déjà spécifier .Vraiment je ne comprend pas, tout fonctionner pourtant bien avant .Nautilus qui merde peut être , .
je verrais demain je dois me déco,
ça doit être un problème de fichier mal localisé la console le spécifie , mais le chemin est pourtant bon bref c'est compliqué là .
Merci a vous .
Maximilien LIX
salut,
je veux bien faire tout ça mais je suis débutant ,j'ai encore assez de mal avec la console . là je ne sais pas comment faire, j'ai fait a.out
en gros
sudo chmod +x main.x ' entrée)
./a.out
ça n ma rien compilé
j'ai refait
sudo chmod +x main.x ./a.out
pareil rien toujours ce message :
ciircle@ciircle:~/Bureau$ sudo chmod +x main.x ./a.out
[sudo] password for ciircle:
chmod: impossible d'accéder à «./a.out»: Aucun fichier ou dossier de ce type
Je ne sais pas quoi faire , la solution doit être toutes proche mais comme je débute je l'ai un peu là surtout que je suis motivé pour apprendre le langage c .si je vais sur code blocks tu pense que ça peut suffire pour bien apprendre ?, par ce que franchement je tiens vraiment à apprendre le c /et linux tant cas faire et compiler manuellement .
Merci a vous , je dois vraiment me déco, demain je regarderais !
salut,
je veux bien faire tout ça mais je suis débutant ,j'ai encore assez de mal avec la console . là je ne sais pas comment faire, j'ai fait a.out
en gros
sudo chmod +x main.x ' entrée)
./a.out
ça n ma rien compilé
j'ai refait
sudo chmod +x main.x ./a.out
pareil rien toujours ce message :
ciircle@ciircle:~/Bureau$ sudo chmod +x main.x ./a.out
[sudo] password for ciircle:
chmod: impossible d'accéder à «./a.out»: Aucun fichier ou dossier de ce type
Je ne sais pas quoi faire , la solution doit être toutes proche mais comme je débute je l'ai un peu là surtout que je suis motivé pour apprendre le langage c .si je vais sur code blocks tu pense que ça peut suffire pour bien apprendre ?, par ce que franchement je tiens vraiment à apprendre le c /et linux tant cas faire et compiler manuellement .
Merci a vous , je dois vraiment me déco, demain je regarderais !
Nope !
chmod est une commande qui gère les droits sur les fichiers.
./a.out est à executer lorsque tu as compilé ton programme avec gcc.
un conseille, la commande ls sert à lister tes fichiers tape ls -l est tu verras apparaître les préférences d'administrartion de tes fichier.
chmod +x rajoute x qui symbolise l'execution. En clair un fichier qui contien x comme droit d'utilisation sera reconnu par l'OS comme étant un fichier executable.
Un exemple.
Mon script ne pourra pas être executé sauf si j'en donne le droit !
./script.sh
Bon je pense que tu as un peu compris ^^
maintenant voyons ton programme (que j'appellerai main.c)
tu es dans ton dossier (commande cd pour te déplacer )
tu listes tes fichiers dans le dossier dans lequel tu te trouves normalement ton main.c sera là. (Normalement pas besoin de faire de chmod +x pour ton main.c)
commande ls
puis gcc main.c
gcc main.c ça compile ton programme , mais il n'y a pas de main.o ou de main.exe comme sous windows.
Le compilateur ne fait que compiler mais il ne transforme pas ton programme en code objet executable.
Mais pourtant tu peux tester ton programme et donc l'executer ! ^^
commande ./a.out
En effet lorsque ton programme va être compilé tu vas voir un drôle de fichier apparaître la a.out. C'est lui ton programme executable .
Tu peux donc l'executer via ./
donc ./a.out
et voilà un magnifique hello world dans ton terminal ^^
Oups si tu veux transformer ton programme en executable utilise -o avec gcc de cette manière.
gcc main.c -o mon-programme
PS: pareil que l'exemple avec mon script dans ce cas précis il faut accorder le droit d'execution à ton nouveau programme donc
sudo chmod +x mon-programme
de toute façon tu fais ls -l et tu regarde si tu n'as pas un x quelque par ^^ Voili voilou Bon courage
chmod est une commande qui gère les droits sur les fichiers.
./a.out est à executer lorsque tu as compilé ton programme avec gcc.
un conseille, la commande ls sert à lister tes fichiers tape ls -l est tu verras apparaître les préférences d'administrartion de tes fichier.
chmod +x rajoute x qui symbolise l'execution. En clair un fichier qui contien x comme droit d'utilisation sera reconnu par l'OS comme étant un fichier executable.
Un exemple.
gamerlix@crunchbang-LIX:~/documents/exemple$ ls -l
total 4
-rw-r--r-- 1 gamerlix gamerlix 19 févr. 27 21:36 script.sh
gamerlix@crunchbang-LIX:~/documents/exemple$
Mon script ne pourra pas être executé sauf si j'en donne le droit !
gamerlix@crunchbang-LIX:~/documents/exemple$ sudo chmod +x script.shC'est bon je peux executer mon script ! mais comment ? Commande ./nom-du-fichier
[sudo] password for gamerlix:
gamerlix@crunchbang-LIX:~/documents/exemple$ ls -l
total 4
-rwxr-xr-x 1 gamerlix gamerlix 19 févr. 27 21:36 script.sh
./script.sh
Bon je pense que tu as un peu compris ^^
maintenant voyons ton programme (que j'appellerai main.c)
tu es dans ton dossier (commande cd pour te déplacer )
tu listes tes fichiers dans le dossier dans lequel tu te trouves normalement ton main.c sera là. (Normalement pas besoin de faire de chmod +x pour ton main.c)
commande ls
puis gcc main.c
gcc main.c ça compile ton programme , mais il n'y a pas de main.o ou de main.exe comme sous windows.
Le compilateur ne fait que compiler mais il ne transforme pas ton programme en code objet executable.
Mais pourtant tu peux tester ton programme et donc l'executer ! ^^
commande ./a.out
En effet lorsque ton programme va être compilé tu vas voir un drôle de fichier apparaître la a.out. C'est lui ton programme executable .
Tu peux donc l'executer via ./
donc ./a.out
et voilà un magnifique hello world dans ton terminal ^^
Oups si tu veux transformer ton programme en executable utilise -o avec gcc de cette manière.
gcc main.c -o mon-programme
PS: pareil que l'exemple avec mon script dans ce cas précis il faut accorder le droit d'execution à ton nouveau programme donc
sudo chmod +x mon-programme
de toute façon tu fais ls -l et tu regarde si tu n'as pas un x quelque par ^^ Voili voilou Bon courage
bon courage