我可以在我的应用程序的 make 文件中有条件地构建我的 PC 文件 (Oracle Pro*c) 吗?

Can I build my PC file (Oracle Pro*c) conditionally inside of my application's make file?

我正在尝试合并我的 makefile,这样我就可以简单地构建一次,它会在继续构建应用程序之前完全预编译 pc 文件。 应该 是可能的,但我这辈子都弄不明白。这是我的 makefile(适用于 redhat 7)。

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 $@ -I$(INC)  -DCDATE="\"$(COMPILEDATE)\"" -DBUILD="\"$(LSWBUILD)\""

FORCE : 

%.o : %.cpp $(INC)myProcess.h
$(COMPILE) -c $< -o $@ -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

我的错,我没有解释问题所在:

我正在使用此构建命令在 netbeans 中进行编译:${MAKE} -f Makefile。错误是 PCC-S-02015,无法打开未预编译的对象上的包含文件,sqlStuff.o

查看 sqlStuff.o : sqlStuff.c 下的 gcc 命令,在我看来应该有一个 -o sqlStuff.o 标志告诉 gcc 输出应该写入 sqlStuff.o 而不是默认值,即 a.out.

祝你好运。