如何在Solaris/Linux服务器上为Oracle创建makefile?
问题描述:
我有一个适用于Informix数据库的应用程序。但现在我想让它为Oracle编译它。在下面显示的生成文件中应该对Informix正确运行进行哪些更改?如何在Solaris/Linux服务器上为Oracle创建makefile?
ESQL:=esql
CFLAGS:=$(CFLAGS) -DSOLARIS
PROCFLAGS:=$(PROCFLAGS) -DSOLARIS
HEADERS= $(HOME)/tmiD/headers
target = $(HOME)
CC=gcc
%.o :%.ec ; $(ESQL) -I$(HEADERS) -c $(CFLAGS) -DINFORMIX -EDINFORMIX -I/usr/local/include $<
%.o :%.c ; $(CC) -I$(HEADERS) -c $(CFLAGS) $<
MAKEC= mv $(target)/$(@F) $(target)/$(@F).old; \
$(ESQL) -DINFORMIX -EDINFORMIX \
$^ $(CFLAGS) -lnsl -L $(target) \
-o $(target)/$(@F)
$(target)/%:%.o $(CLIBFILES); $(MAKEC)
%:%.o $(CLIBFILES); $(MAKEC)
all: a tw_interface clean
tw_interface: tcp.o trace.o global.o rmi.o License.o purge.o libswx.a
ap: tcp.o trace.o global.o rmi.o License.o purge.o
clean:
-rm tcp.o trace.o global.o rmi.o purge.o License.o\
trace.c global.c rmi.c
a:
-rm tw_interface
我对这些东西很陌生。所以请帮助我。
预先感谢您。
答
嗯....你说你对这些东西很陌生。
如果你不是一个有经验的程序员,重写一个Makefile是一个不平凡的练习。但是,如果您想尝试一下,我建议您首先在ORACLE_HOME中安装Pro * C演示程序。一旦完成,并且已经验证,通过构建示例Pro * C程序,我建议使用demo_proc.mk makefile(将与演示程序一起安装)作为模板来转换makefile。另外,请注意,我对Informix一无所知,但代码本身可能需要转换为Pro * C,因为我认为Informix有一些其他的预编译器,或者用于数据库访问的备用库集合。
希望有所帮助。
答
我觉得PRO * C预编译器调用与 “过程”,所以第一线
ESQL:=esql
应该成为
PRO_C:=proc
它看起来像PRO * C文件通常有一个.PC文件延期。假设你的PRO * C文件会比您的Informix * .ES文件略有不同,您将创建他们一个.PC扩展,那么这行
%.o :%.ec ; $(ESQL) -I$(HEADERS) -c $(CFLAGS) -DINFORMIX -EDINFORMIX -I/usr/local/include $<
将成为
%.o :%.pc ; $(PRO_C) CONFIG=proc_c_config.txt -I$(HEADERS) -c $(CFLAGS) -I/usr/local/include $<
以上行有“proc_c_config.txt”这是一个文件来创建任何需要的Pro * C选项。如果除默认值之外没有其他选项,则可以删除该部分。
$(ESQL) -DINFORMIX -EDINFORMIX \
将成为
$(PRO_C) CONFIG=pro_c_config.txt \
可能更多的东西放到'CFLAGS' –
确定。我想知道究竟需要做什么。你能告诉我,还是给我任何有用的链接? –
你能否编辑你的问题来添加你得到的任何错误?如果这样做,则包含_all_错误,并进行复制/粘贴,以便不修改任何消息。 –