Bonjour,
J'ai voulu passer à la compilation séparée (j'utilise le compilateur Borland C++4.2,sous Windows),alors que jusqu'à présent je n'ai fait que de la compilation unique.Mais j'ai des problèmes à l'exécution?Comme ces problèmes semblent difficiles à saisir d'emblée,je fais le petit test suivant.
Je définis mon source en 2 fichiers.
Un premier fichier a.cpp contient :
Le second fichier d.cpp contient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <stdio.h> FILE* fi; int n; extern int d(); int j; int OwlMain (int,char *[]) { fi=fopen("file.txt","r"); n=0; j =d(); fclose(fi); return 1; }
La compilation et le link sont corrects.Mais à l'exécution,quand il arrive sur fscanf(fi,"%d etc..,il soulève l'exception :General Protection exception,processor fault.Si on place puts avant dans le code,il génére la même exception sur puts.Ces exceptions ne sont pas soulevées si on compile en un seul source.Je voudrais savoir ce qui se passe.Est-ce une question de bibliothèques qui ne sont pas les mêmes quand on passe en compilation séparée,et qui pour le coup auraient des erreurs?Est-ce un problème d'adressage,ou autre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <stdio.h> extern FILE* fi; extern int n; int d() { char tc[1000]; char a,b,c; int i; for (i=0;i<1000;i++) { tc[i]=0x000F; } fscanf(fi,"%d %d %d",&a,&b,&c); puts ("debut du programme"); return n+10; }
Quelqu'un est-il intéressé par le problème,a-t-il ces problèmes pour compiler séparément,peut-il compiler séparément avec d'autres compilateurs ?
Partager