Bonjour,
voilà mon soucis, le makefile que j'utilise fonctionne apperement qu'en Oracle V8 ou 9 puisque passé en V10, il me compile bien tous mes fichier c et proC, cependant quand je veux executé l'exe il me met memory fault.
Je ne pense pas que cela vient de la programmation puisqu'avant cela fonctionné.
Voici les makefiles (en racourcissant un peu les variables pas importante je les passe):
Makefile fichier non ProC:
Le makefile pour le ProC, je ne montre que la compile les variable les memes :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #---------------------------------------------------------------------------- # Inclusion des definitions fournies par Oracle (NE PAS MODIFIER !!!) #---------------------------------------------------------------------------- include $(ORACLE_HOME)/precomp/lib/env_precomp.mk # Utilisation de la macro INCLUDE pour preciser au compilateur les chemins des repertoires de recherche des fichiers include INCLUDE=$(I_SYM). $(I_SYM)$(PRECOMPHOME)public $(I_SYM)$(RDBMSHOME)public $(I_SYM)$(RDBMSHOME)demo $(I_SYM)$(PLSQLHOME)public $(I_SYM)$(NETWORKHOME)public $(I_SYM)$(INC_DIR) $(I_SYM)$(WAVE_DIR)/demo/interapp/opi #INCLUDE=$(I_SYM). $(PRECOMPPUBLIC) #INCLUDE1 = $(INCLUDE) -I/usr/include -I/usr/include/sys -I/usr/include/CC -I$(INC_DIR) # Options utilisees par le compilateur C++ # Sans debugger #CCFLAGS = $(CPLUS_CFLAGS) # Pour debugger CCFLAGS = -g -w $(CPLUS_CFLAGS) # Generation des cibles du makefile # ========================================= all : $(USR_OBJ) clean : rm $(USR_OBJ) $(OBJ_DIR)/psload.o : psload.c $(USR_INC) @echo "C++ psload.c" @echo "Compilation psload" @$(CPLUSPLUS) -c $(CCFLAGS) $(INCLUDE) -o $(OBJ_DIR)/psload.o psload.c $(OBJ_DIR)/pserrsql.o: $(SRC_DIR)/pserrsql.c $(USR_INC) @echo "C++ pserrsql.c" @echo "Compilation pserrsql" @$(CPLUSPLUS) -c $(CCFLAGS) -o $(OBJ_DIR)/pserrsql.o $(SRC_DIR)/pserrsql.c $(OBJ_DIR)/psficht.o: $(SRC_DIR)/psficht.c $(USR_INC) @echo "C++ psficht.c" @echo "Compilation psficht" @$(CPLUSPLUS) -c $(CCFLAGS) -o $(OBJ_DIR)/psficht.o $(SRC_DIR)/psficht.c
Et enfin le makefile qui créé l'exe:
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
17
18
19
20 # Generation des cibles du makefile # ========================================= all : $(USR_OBJ) clean : @echo "Nettoyage" rm $(USR_OBJ) $(SRC_DIR)/*.lis $(SRC_DIR)/pssess.c $(SRC_DIR)/psreq.c $(OBJ_DIR)/pssess.o : $(SRC_DIR)/pssess.pc $(USR_INC) @echo "Proc pssess" @$(PROC) $(PROCFLAGS) iname=$(SRC_DIR)/pssess.pc @echo "Compilation pssess" @$(CPLUSPLUS) -c -D_DEBUG -D__hpux -g $(CCFLAGS) -o $(OBJ_DIR)/pssess.o $(SRC_DIR)/pssess.c $(OBJ_DIR)/psreq.o : $(SRC_DIR)/psreq.pc $(USR_INC) @echo "Proc psreq " @$(PROC) $(PROCFLAGS) iname=$(SRC_DIR)/psreq.pc @echo "Compilation psreq" @$(CPLUSPLUS) -c -D_DEBUG -D__hpux -g $(CCFLAGS) $(INCLUDE) -o $(OBJ_DIR)/psreq.o $(SRC_DIR)/psreq.c
Voilà j'espere que vous pourrez m'aider car çà fait deux jours que j'essaie plein de truc et toujours pareille, le meme erreur ce Memory fault
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #---------------------------------------------------------------------------- # Inclusion des definitions fournies par Oracle (NE PAS MODIFIER !!!) #---------------------------------------------------------------------------- include $(ORACLE_HOME)/precomp/lib/env_precomp.mk LIBHOME=$(ORACLE_HOME)/lib/ # Utilisation de la macro INCLUDE pour preciser au compilateur les chemins des repertoires de recherche des fichiers include INCLUDE=$(I_SYM). $(I_SYM)$(PRECOMPHOME)public $(I_SYM)$(RDBMSHOME)public $(I_SYM)$(RDBMSHOME)demo $(I_SYM)$(PLSQLHOME)public $(I_SYM)$(NETWORKHOME)public $(I_SYM)$(INC_DIR) $(I_SYM)$(WAVE_DIR)/demo/interapp/opi # Options utilisees par le precompilateur PRO*C/C++ # Option standard pour du code CPP PROCFLAGS=code=CPP parse=PARTIAL sqlcheck=FULL userid=$(USERID) include='($(INC_DIR))' # Options utilisees par le compilateur C++ # Sans debugger CCFLAGS = $(CPLUS_CFLAGS) # Pour debugger #CCFLAGS = -mt -g # Generation des cibles du makefile # ========================================= exe : psload.exe psload.exe : ${USR_OBJ} @echo "Generation executable" @$(CPLUSPLUS) -o psload.exe $(USR_OBJ) -L$(LIBHOME) ${PROLDLIBS} move : @echo "Deplacement de l'executable" mv psload.exe $(EXE_DIR)
NB : je ne sais si c'est important mais mon exe a une taille inférieure que l'exe créé avec Oracle V8
Partager