Erreur fonction system
Résolu
pa
-
pa -
pa -
Bonjour,
j'ai créer un petit compilateur en C qui fonctionne : il traduit un code d'un langage que j'ai créer en C .
A la fin j'ai rajouté : system("gcc -g compiler.c -o compiler");
pour que le programme compile directement le code C en executable .
Le programme marche mais renvoie a la fin un message d'erreur :
/usr/bin/ld : /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o : dans la fonction « _start » :
(.text+0x24) : référence indéfinie vers « main »
collect2: error: ld returned 1 exit status
j'aimerais savoir pourquoi alors que le programme marche (le fichier est bien compiler) et que la fonction system() ne renvoie pas d'erreur avec d'autres arguments.
voici la fonction principale de mon code avec les includes .
j'ai créer un petit compilateur en C qui fonctionne : il traduit un code d'un langage que j'ai créer en C .
A la fin j'ai rajouté : system("gcc -g compiler.c -o compiler");
pour que le programme compile directement le code C en executable .
Le programme marche mais renvoie a la fin un message d'erreur :
/usr/bin/ld : /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o : dans la fonction « _start » :
(.text+0x24) : référence indéfinie vers « main »
collect2: error: ld returned 1 exit status
j'aimerais savoir pourquoi alors que le programme marche (le fichier est bien compiler) et que la fonction system() ne renvoie pas d'erreur avec d'autres arguments.
voici la fonction principale de mon code avec les includes .
Configuration: Linux / Firefox 89.0
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
long long ligne = 1;
bool com = false;
bool ch = false;
bool aff = false;
bool erreur = false;
FILE* fichier = NULL;
int main()
{
fichier = fopen("compiler.c","w+");
fputs("#include <stdlib.h>\n#include <stdio.h>\n\nint main()\n{",fichier);
yylex();
if(com) {printf("Erreur commentaire non-refermé !\n");erreur=true;}
if (ch) {printf("Erreur chaine non-refermé !\n");erreur=true;}
if (aff) {printf("Erreur Instruction Afficher non-refermé !\n");erreur=true;}
(erreur) ? printf("Erreur détecté dans le code : le fichier a quand même été compilé\n") : printf("Aucune erreur détecté dans le code : le fichier a été compilé\n");
fputs("\n\treturn 0;\n}",fichier);
system("gcc -g compiler.c -o compiler");
return 0;
}
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
long long ligne = 1;
bool com = false;
bool ch = false;
bool aff = false;
bool erreur = false;
FILE* fichier = NULL;
int main()
{
fichier = fopen("compiler.c","w+");
fputs("#include <stdlib.h>\n#include <stdio.h>\n\nint main()\n{",fichier);
yylex();
if(com) {printf("Erreur commentaire non-refermé !\n");erreur=true;}
if (ch) {printf("Erreur chaine non-refermé !\n");erreur=true;}
if (aff) {printf("Erreur Instruction Afficher non-refermé !\n");erreur=true;}
(erreur) ? printf("Erreur détecté dans le code : le fichier a quand même été compilé\n") : printf("Aucune erreur détecté dans le code : le fichier a été compilé\n");
fputs("\n\treturn 0;\n}",fichier);
system("gcc -g compiler.c -o compiler");
return 0;
}
A voir également:
- Erreur fonction system
- Fonction si et - Guide
- Reboot system now - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- System fan 90b - Forum Matériel & Système
- Missing operating system ✓ - Forum Windows