Oracle For HP_UX上,如何编译运行Proc(急,多分)

zhaojx9 2003-10-19 10:55:13
在HP_UX上装了Oracle9i,要编译运行Proc的程序,
请教Makefile文件如何写,最好有个成功抽库更新的例子.
万分感谢!!
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlecong 2003-10-30
  • 打赏
  • 举报
回复
这是我目前用的,只生成.o文件
FLG = -g
RM = @rm -f
CC = @cc
D = $(PREDEFINE)
PROC = @$(ORACLE_HOME)/bin/proc
CFLAG = $(FLG)
MODE=mode=ansi
CODE=
PARSE=full
NLS_CHAR=nls_char=ZHS16GBK
APP_INC = include=. include=../../public
DB_INC = include=$(ORACLE_HOME)/precomp/public include=$(ORACLE_HOME)/rdbms/demo include=$(ORACLE_HOME)/rdbms/public

ORA_LIBDIR = -L$(ORACLE_HOME)/lib32/
ORA_LIBFLAG = `cat $(ORACLE_HOME)/lib32/sysliblist` -lclntsh

C_INCP = -I$(ORACLE_HOME)/precomp/public -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public -I.
C_LIBP = $(ORA_LIBDIR) $(ORA_LIBFLAG) -L.

CFLAGS = $(CFLAG) $(C_INCP) $(C_LIBP)

# libraries and targets
OBJS = \
ora_ecpublic.o \
ora_funsend.o \
ora_makxml.o
TARGET = $(OBJS)

all: $(TARGET)

# implicit

.SUFFIXES:
.SUFFIXES: .pc .c .o

.pc.o:
@echo 'compiling $*.pc';
$(PROC) $(MODE) $(NLS_CHAR) $(APP_INC) $(DB_INC) $(CODE) iname=$*.pc;
$(CC) $(CFLAGS) $(C_INCP) $(D) -c $*.c;
$(RM) $*.c;
$(RM) $*.lis

.c.o:
$(CC) -g -o $(APP_INC) $(DB_INC) $@ -c $< $(CFLAGS)

clean:
$(RM) $(OBJS)
zjtxsx 2003-10-29
  • 打赏
  • 举报
回复
其实写makefile没那么复杂可怕,一般就分两步,先用proc编译,再用cc编译即可。
zhaojx9 2003-10-20
  • 打赏
  • 举报
回复

一个连接数据库的例子
/*procdemo.pc*/
#include <sqlca.h>
#include <string.h>
#include <stdio.h>
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
VARCHAR dbname[20];
EXEC SQL END DECLARE SECTION;
void db_connect(char *user,char *pass,char *server)
{
strcpy((char *)username.arr,user);
username.len = strlen((char *)username.arr);
strcpy((char *)password.arr,pass);
password.len = strlen((char *)password.arr);
strcpy((char *)dbname.arr,server);
dbname.len = strlen((char *)dbname.arr);
EXEC SQL WHENEVER SQLERROR STOP;
EXEC SQL CONNECT :username
IDENTIFIED BY :password USING :dbname;
if (sqlca.sqlcode != 0)
{
printf("\nConnect Oracle Failed!i\n");
return;
}
else
printf("Connect oracle successfully\n");
}


/*demo.c*/
#include <sqlca.h>
#include <stdio.h>
extern void db_connect();
main()
{
db_connect("cash","cash","m1");
}

/*makefile*/
OBJECT =procdemo.c demo.c
ORACLEDIR=$(ORACLE_HOME)
all: clean ppcc demo
ppcc:
proc procdemo.pc
demo:
cc -o demo $(OBJECT) -I$(ORACLE_HOME)/precomp/public \
-L$(ORACLEDIR)/lib -lclntsh
clean:
rm -f procdemo.c demo

运行 ./demo

zaiquansun 2003-10-19
  • 打赏
  • 举报
回复
yiyi999999999 2003-10-19
  • 打赏
  • 举报
回复
oracle提供一个实例proc.mak,你可以参照一下。
Linux内核一直是学习的难点:将近3000万行代码,5万多个源文件,代码庞大繁杂、代码很难看懂。《Linux内核编程》将突破以往传统的学习方式,采取更有效和科学的学习方法,多角度地对内核进行多层次分析,不局限于形式,不拘泥细节,目的只有一个:更轻松、更高效地去理解内核、学习内核。为了更好地让学员掌握内核编程技能,更好地理解内核,本课程将采用并不局限于以下学习方法进行课程的录制:降维分析,化简为繁,将复杂的系统简单化用软件工程的方法分析内核:软件分层、模块化分解、框架迭代多角度立体分析Linux内核,目的只有一个:更好地理解内核利用Linux内核中的面向对象编程思想去分析复杂的子系统、子系统交互利用多任务编程的思想去分析Linux内核本套课程预计分为20个左右的小模块,每个模块一个专题,每个专题会陆续发布。拟录制的模块包括但不限于:模块机制、内核裁剪与配置、内核编译与启动、系统调用、中断、文件系统、调度、内存管理、内核同步、设备模型、字符驱动、块驱动、定时器、input、platform设备驱动、device tree、proc、sysfs、I/O...  本课程是《Linux内核编程》的入门篇,主要给大家介绍一下Linux内核开发、Linux驱动开发的就业行情、行业生态、需要掌握哪些技能、Linux内核的学习方法、如何搭建Linux内核的学习开发环境。 

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧