首先,本人的系统是Redhat Linux9.0+Oracle9i R2,如果有出入,请自己核对,本人概不负责,不过可以一起讨论:fzbook@vip.sina.com。
Oracle9i R2提供了一个非常完美联编的make工具,本人也是新手上路,一番琢磨,解决问题,怦然心动,不将他放在网上总觉得遗憾,所以马上书写一份文档,共网友讨论。
为了安全,请建立你自己的开发目录。我是建立了一个oracle用户的目录/develop目录,在下面建立了一个proc子目录。步聚如下:
1) 以oracle用户登录系统。
2) cp $ORACLE_HOME/precomp/demo/proc/demo_proc32.mk /develop/proc/
3) cd /develop/proc/,修改demo_proc32.mk,如下操作:
a) 定位到189行,应该是句这样的话:
PROCPPFLAGS=code=cpp $(CPLUS_SYS_INCLUDE)
改为:
PROCPPFLAGS=code=cpp $(CPLUS_SYS_INCLUDE) CPP_SUFFIX=cc
4) 编辑$ORACLE_HOME /precomp/lib目录下面的env_precomp.mk文件,修改该文件之前请务必保存一个备份,以防不测。
a) 定位1555行,将LIBDIR32=lib32改为LIBDIR32=lib
b) 定位1561行,将C2O_32=$(CC) $(CFLAGS32) -c $*.cc改为C2O_32=$(CC) $(CFLAGS32) -c *.cc
c) 定位1562行,将C++2O_EXE_32=$(CPLUSPLUS) $(LFLAGS32) -c $(INCLUDE) $(EXE).cc 改为C++2O_EXE_32=$(CPLUSPLUS) $(LFLAGS32) -c $(INCLUDE) *.cc
d) 定位1563行,将C++2O_32=$(CPLUSPLUS) $(LFLAGS32) -c $(INCLUDE) $*.cc改为C++2O_32=$(CPLUSPLUS) $(LFLAGS32) -c $(INCLUDE) *.cc
5) 将你要编译的原码放在/develop/proc下面,执行如下命令:
make –f demo_proc.mk OBJS=”Db.o test.o” EXE=Db cppbuild
注意:在我的/develop/proc下面有Db.pc,Db.h,test.cc三个源码。你可以跟该的仅仅是OBJS里面的信息,什么样子的cc文件,就有什么样的o文件。
在执行这个命令之前,请务必确保你的o文件,lis文件以及pc的c/cc文件已经被删除。
6) 我上面的所有操作都是针对C++格式以及
7) 源文件为cc的文件。
如果你有什么样的建议,请告诉我fzbook@vip.sina.com,为中华民族的IT而奋斗终身。