免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1447 | 回复: 0
打印 上一主题 下一主题

Solaris下的OCI程序的编译(MAKE)问题。请大哥们救命啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-11 14:52 |只看该作者 |倒序浏览
我的OCI程序(简要)如下:
1):readgeom.c
#include <stdio.h>;
#include <stdlib.h>;
#include <string.h>;
#include <oci1.h>;
#include <oci.h>;
#include <math.h>;
#include "readgeom.h"
#include "geomops.h"
....
main()
{
  .....
  .....
}


2): geomops.c
#include <stdio.h>;
#include <stdlib.h>;
#include <string.h>;
#include <math.h>;
#include "geomops.h"
......
......

3):readgeom.h
#include <oci.h>;
#include <oci1.h>;
....
....


4):geomops.h
#include <oci.h>;
#include <oci1.h>;
#include "readgeom.h"
.
..
...

这四个程序包含头文件的情况如上。连同以上4个文件和一个编译文件OCI_SAMPLE.MK都是在ORACLE的官方网站上下载的一个例程。程序的功能是怎样读取ORACLE中空间数据库里的数据。
当我用oci_sample.mk的MAKE文件进行编译时,却报错。具体过程如下:
$  make -f oci_sample.mk demos
dependency dropped.
build EXE=n/make -f oci_sample.mk
': No such file or directoryd `oci_sample.mk
Current working directory /disk4/fm/dll/oci
] Error 1 [
请问各位大侠如何解决。小弟副上OCI_SAMPLE.MK 原代码如下:
/* oci_sample.mk */
#
# Example for building demo OCI programs:
#
# 1. All OCI demos:
#
#    make -f oci_sample.mk demos
#
# 2. A single OCI demo:
#
#    make -f oci_sample.mk build EXE=demo
#    e.g. make -f oci_sample.mk build EXE=readgeom
#
# 3. A single OCI demo with static libraries:
#
#    make -f oci_sample.mk build_static EXE=demo
#    e.g. make -f oci_sample.mk build_static EXE=readgeom
#
# 4. To re-generate shared library:
#
#    make -f oci_sample.mk generate_sharedlib
#
#
# NOTE: 1. ORACLE_HOME must be either:
#                   . set in the user's environment
#                   . passed in on the command line
#                   . defined in a modified version of this makefile
#
#       2. If the target platform support shared libraries (e.g. Solaris)
#          look in the platform specific documentation for information
#          about environment variables that need to be properly
#          defined (e.g. LD_LIBRARY_PATH in Solaris).
#

include  /env_rdbms.mk
#include $(ORACLE_HOME)/rdbms/lib/env_rdbms.mk


RDBMSLIB=$(ORACLE_HOME)/rdbms/lib/

LDFLAGS=-L$(LIBHOME) -L$(ORACLE_HOME)/rdbms/lib
LLIBPSO=`cat $(ORACLE_HOME)/rdbms/lib/psoliblist`

# directory that contain oratypes.h and other oci demo program header files
INCLUDE= -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/plsql/public -I$(ORACLE_HOME)/network/public -I.


#
CONFIG = $(ORACLE_HOME)/rdbms/lib/config.o

# module to be used for linking with non-deferred option

# flag for linking with non-deferred option (default is deferred mode)
NONDEFER=false

# libraries for linking oci programs
OCISHAREDLIBS=$(TTLIBS) $(DEF_ON) $(LLIBTHREAD)
OCISTATICLIBS=$(STATICTTLIBS) $(LLIBTHREAD)

PSOLIBLIST=$(ORACLE_HOME)/rdbms/lib/psoliblist
CLEANPSO=rm -f $(PSOLIBLIST); $(GENPSOLIB)

DOLIB=$(ORACLE_HOME)/lib/liborcaccel.a
DUMSDOLIB=$(ORACLE_HOME)/lib/liborcaccel_stub.a
REALSDOLIB=/usr/lpp/orcaccel/liborcaccel.a


LLIBSQL= -lsql
PROLDLIBS= $(LLIBSQL) $(TTLIBS)

DEMO_MAKEFILE = oci_sample.mk

DEMOS = readgeom writegeom

OBJECTS=geomops.o readgeom.o writegeom.o

OBJ1=geomops.o readgeom.o
OBJ2=writegeom.o

demos: $(DEMOS)

generate_sharedlib:
        $(SILENT)$(ECHO) "Building client shared library ..."
        $(SILENT)$(ECHO) "Calling script $$ORACLE_HOME/bin/genclntsh ..."
        $(GENCLNTSH)
        $(SILENT)$(ECHO) "The library is $$ORACLE_HOME/lib/libclntsh.so... DONE"

$(DEMOS):
        $(MAKE) -f $(DEMO_MAKEFILE) build EXE=$@

readgeom: $(OBJ1)

writegeom(OBJ2)

$(OBJ1): readgeom.c geomops.c readgeom.h geomops.h

$(OBJ2): writegeom.c writegeom.h
       
build: $(LIBCLNTSH) $(OBJECTS)
        $(ECHODO) $(CC) $(LDFLAGS) -o readgeom $(OBJ1) $(OCISHAREDLIBS)
        $(ECHODO) $(CC) $(LDFLAGS) -o writegeom $(OBJ2) $(OCISHAREDLIBS)

build_static: $(OBJECTS)
        $(ECHODO) $(CC) $(LDFLAGS) -o readgeom $(OBJ1) $(SSDBED) $(DEF_ON) \
        $(OCISTATICLIBS)
        $(ECHODO) $(CC) $(LDFLAGS) -o writegeom $(OBJ2) $(SSDBED) $(DEF_ON) \
        $(OCISTATICLIBS)
clean:
        $(RM) -f $(DEMOS) *.o *.so
  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP