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:
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
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
# 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
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
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)
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

NB : je ne sais si c'est important mais mon exe a une taille inférieure que l'exe créé avec Oracle V8