2016-11-17 1 views
0

Je tente de combiner mes makefiles pour que je puisse simplement construire une fois et il va précompiler complètement le fichier pc avant de continuer à construire l'application. Ce devrait être être possible mais pour la vie de moi je ne peux pas le comprendre. Voici mon makefile (pour redhat 7).Puis-je créer mon fichier PC (Oracle Pro * c) de manière conditionnelle dans le fichier make de mon application?

COMPILEDATE = $(shell date) 
COMPILE=g++ -std=c++11 -Wall -Wuninitialized -g 
OSTYPE = $(shell uname) 
LIBDIR=../../lib/ 
INC=../../include/ 
FILES=myProcess 
OBJS= myProcess.o \ 
sqlStuff.o 

O8P=$(ORACLE_HOME) 
O8P=/u01/app/oracle/11.2.0/client_1 
ORACLE_HOME=/u01/app/oracle/11.2.0/client_1 
PROC_LINES=proc lines=yes code=ANSI_C iname=sqlStuff.pc parse=partial iname=sqlStuff include=. include=$(ORACLE_HOME)/precomp/public include=$(ORACLE_HOME)/rdbms/public include=$(ORACLE_HOME)/rdbms/demo include=$(ORACLE_HOME)/plsql/public include=$(ORACLE_HOME)/network/public 

all: $(FILES) 

compileInfo.o : FORCE 
    $(COMPILE) -c compileInfo.cpp -o [email protected] -I$(INC) -DCDATE="\"$(COMPILEDATE)\"" -DBUILD="\"$(LSWBUILD)\"" 

FORCE : 

%.o : %.cpp $(INC)myProcess.h 
$(COMPILE) -c $< -o [email protected] -I$(INC) -DCDATE="\"$(COMPILEDATE)\"" 

sqlStuff.o : sqlStuff.c 
    gcc -g -Wall -O -c -lclntsh -I. -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/plsql/lib -I$(ORACLE_HOME)/network/lib 

sqlStuff.c : sqlStuff.pc 
    $(PROC_LINES) 

myProcess: $(OBJS) $(LIBDIR)libbase.a $(INC)myProcess.h sqlStuff.o 
    $(COMPILE) -o myProcess$(OBJS) -L$(LIBDIR) -lbase 

clean: 
rm -f $(FILES) 
rm -f sqlStuff 
rm -f sqlStuff.c 
rm -f sqlStuff.lis 
rm -f $(OBJS) 
rm -f core 
rm -f *.out 
rm -f *.log 
rm -f *.err 

ma faute, je ne l'ai pas expliquer ce que la question était:

Je compile dans NetBeans en utilisant cette commande de construction: $ {} MAKE -f Makefile. L'erreur est PCC-S-02015, incapable d'ouvrir inclure fichier sur mon objet qui n'est pas précompilés, sqlStuff.o

+0

Comment l'essayez-vous exactement? Pouvez-vous fournir une commande make? Vous avez oublié de nous dire ce qui se passe quand vous l'essayez? – quantummind

+0

Désolé à ce sujet, je compile dans netbeans en utilisant cette commande de construction: $ {MAKE} -f Makefile. L'erreur est PCC-S-02015, impossible d'ouvrir le fichier d'inclusion sur mon objet qui n'est pas précompilé, sqlStuff.o –

Répondre

0

regardant la commande gcc sous sqlStuff.o : sqlStuff.c, il me semble qu'il devrait y avoir un drapeau -o sqlStuff.o disons à gcc que la sortie doit être écrite à sqlStuff.o au lieu de la valeur par défaut, qui est a.out.

Bonne chance.