上班回来,接第一步,这篇说下第二步。
第二步:环境变量配置及撰写Makefile文件
1、Unix环境变量的配置
这里所说的环境变量是指oracle安装的dll等资源路径。因为若cpp文件经过编译链接,执行的时候需要occi资源的支持的,没有支持就会报错说神马dll文件找不到之类。所以在makefile之前可以先把环境变量搞定了,内容很简单,看setenv.sh脚本代码:
ORACLE_HOME变量是产品根目录,就是有很多文件的上一级
PATH中第一个/usr/ccs/bin是我用的make路径,这样每次就不用绝对地址了,直接make就行了。而$ORACLE_HOME/bin:$PATH很重要。很多的oracle提供可执行文件都在这里。
LD_LIBRARY_PATH=$ORACLE_HOME/lib32就更是重要了,为后面的cpp对应执行文件提供dll。这里多提一下lib和lib32的区别吧,在oracle9i还是10g或更新的oracle,lib32表示的是32位的环境,而lib表示的是64位的环境。所以根据个人情况改写吧,对于makefile也是这样的。见下文内容。
setenv.sh写好了怎么用呢?这是一个shell脚本,可以手动执行./setenv.sh 这样你就能享受这些环境变量了,也可以自动执行,关于怎样自动执行建议看看.profile等文件相关内容,(本人喜欢bash环境,每次运行bash时会自动依次执行.bash_profile、.bashrc所以在.bashrc中加入/setenv.sh即可,我的bashrc内容是:注意看最后一行指明了要运行setenv.sh,所以不用手动了。
2、Makefile的编写
在开始调用occi之前,首先需要在helloworld工作目录写一份Makefile文件,起名为makefile均可,make命令首先寻找Makefile,若不存在则会寻找makefile,对了这时也要确认能否执行make命令,如果显示找不到,需要使用绝对地址执行make,如/usr/ccs/bin/make,默认unix均有make执行文件。该Makefile内容如下:
写到这里,Makefile写完了,至于是否正确需要实际验证,因为每个人的oracle安装的不一样,所以里面的变量内容需要酌情更改,按照我说的更改即可,验证方法很简单,执行make命令(或绝对路径用make),看是否能够编译.cpp并生成.o及最后的目标文件。一步一步检查看哪里存在问题。问题常常是oracle路径的问题要设置好。其实路径无非是编译需要的和链接需要的include及dll文件而已。所以根据这个思想去你的oracle目录下去找他们吧。 Makefile很关键,没写好的留言讨论。
验证代码如下:
注:编译好了,执行一下看是否输出success
第三步另起一篇,第三篇是在c++及makefile环境没问题的情况下如何访问远程oracle数据库了。