【问题标题】:How to make a makefile for Oracle on Solaris/Linux Server?如何在 Solaris/Linux 服务器上为 Oracle 制作 makefile?
【发布时间】:2012-08-31 23:33:00
【问题描述】:

我有一个为 Informix 数据库正常运行的应用程序。但现在我希望它也为 Oracle 编译它。应该在下面显示的为 Informix 正常运行的 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

我对这些东西很陌生。所以请帮助我。

提前谢谢你。

【问题讨论】:

  • CFLAGS 可能还有更多内容
  • 好的。我想知道究竟需要做什么。你能告诉我或者给我任何有用的链接吗?
  • 您能否编辑您的问题以添加您遇到的任何错误?如果您这样做了,则包含 所有 错误,并进行复制/粘贴,这样您就不会修改任何消息。
  • 正如我所说的,我上面给出的 makefile 在 Informix 数据库中运行良好,没有任何错误。我希望这件事也适用于甲骨文。所以我实际上想知道应该在这个make文件中进行哪些更改。请给我一些信息,说明应该从上面添加/修改或删除什么以使其适用于 Oracle。
  • 我能够为 Oracle 编译,但我收到此错误:“PCC-S-02015,无法打开包含文件”在这一行:“EXEC SQL 包含日期时间;”可能出了什么问题以及如何克服它?

标签: c oracle gcc makefile cc


【解决方案1】:

嗯....你说你对这些东西很陌生。

如果您不是经验丰富的程序员,那么重写 Makefile 是一项非常重要的练习。

但是,如果您想尝试一下,我建议您首先在 ORACLE_HOME 中安装 Pro*C 演示。一旦完成,并且您已经验证它,通过构建示例 Pro*C 程序,我建议使用 demo_proc.mk 生成文件(将与演示程序一起安装)作为模板来转换生成文件。

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

希望对您有所帮助。

【讨论】:

    【解决方案2】:

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

    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 \
    

    他们谈论Pro*C options here

    【讨论】:

      猜你喜欢
      • 2020-05-12
      • 2012-07-26
      • 2010-12-01
      • 2014-10-27
      • 2020-03-09
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多