Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Solaris/Linux服务器上为Oracle创建makefile?_C_Oracle_Gcc_Makefile_Cc - Fatal编程技术网

如何在Solaris/Linux服务器上为Oracle创建makefile?

如何在Solaris/Linux服务器上为Oracle创建makefile?,c,oracle,gcc,makefile,cc,C,Oracle,Gcc,Makefile,Cc,我有一个为Informix数据库正常运行的应用程序。但现在我希望它也能为Oracle编译。下面显示的makefile在Informix中正确运行时应该做哪些更改 ESQL:=esql CFLAGS:=$(CFLAGS) -DSOLARIS PROCFLAGS:=$(PROCFLAGS) -DSOLARIS HEADERS= $(HOME)/tmiD/headers target = $(HOME) CC=gcc %.o :%.ec ; $(ESQL) -I$(HEADERS) -c $(CFL

我有一个为Informix数据库正常运行的应用程序。但现在我希望它也能为Oracle编译。下面显示的makefile在Informix中正确运行时应该做哪些更改

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_主页中安装Pro*C演示。完成后,通过构建示例Pro*C程序进行验证,我建议使用demo_proc.mk makefile,它将与演示程序一起安装,作为转换makefile的模板

另外,请注意,我对Informix一无所知,但代码本身可能需要转换为Pro*C,因为我假设Informix还有其他一些预编译器,或用于数据库访问的备用库集


希望能有所帮助。

我认为Pro*C预编译器是用proc调用的,所以第一行

ESQL:=esql
应该成为

PRO_C:=proc
%.o :%.pc ; $(PRO_C) CONFIG=proc_c_config.txt -I$(HEADERS) -c $(CFLAGS) -I/usr/local/include $<
$(PRO_C) CONFIG=pro_c_config.txt \
看起来Pro*C文件通常具有.pc文件扩展名。假设您的Pro*C文件与Informix*.es文件略有不同,并且您将使用.pc扩展名创建它们,那么这一行

%.o :%.ec ; $(ESQL) -I$(HEADERS) -c $(CFLAGS) -DINFORMIX -EDINFORMIX -I/usr/local/include $<
将成为

PRO_C:=proc
%.o :%.pc ; $(PRO_C) CONFIG=proc_c_config.txt -I$(HEADERS) -c $(CFLAGS) -I/usr/local/include $<
$(PRO_C) CONFIG=pro_c_config.txt \

他们在CFLAGSOk中谈论的东西可能更多。我想知道到底需要做什么。你能告诉我或者给我任何有帮助的链接吗?你能编辑你的问题来添加你得到的任何错误吗?如果是这样,那么就包含所有错误,并进行复制/粘贴,这样就不会修改任何消息。我希望这件事也能为甲骨文公司工作。所以我想知道在这个make文件中应该做什么更改。请给我一些信息,说明应该添加/修改或删除哪些内容才能使其适用于Oracle。我可以为Oracle编译,但我遇到了以下错误:PCC-S-02015,无法打开此行中的包含文件:EXEC SQL include datetime;可能出了什么问题以及如何克服?