1

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

私はこれらのことに非常に慣れていません。だから私を助けてください。

前もって感謝します。

4

2 に答える 2

0

Pro*Cプリコンパイラは「proc」で起動すると思うので1行目

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 $<

上記の行には、必要な Pro*C オプションを配置するために作成するファイルである「proc_c_config.txt」があります。デフォルト以外に必要なオプションがない場合は、その部分を削除できます。

$(ESQL) -DINFORMIX -EDINFORMIX \

になるだろう

$(PRO_C) CONFIG=pro_c_config.txt \

彼らはここでPro*Cオプションについて話します

于 2012-09-07T16:23:34.243 に答える
0

うーん....あなたは、これらのことに非常に慣れていないと言います。

経験豊富なプログラマーでない場合、Makefile の書き直しは簡単ではありません。

ただし、これを試してみたい場合は、最初に Pro*C デモを ORACLE_HOME にインストールすることをお勧めします。これが完了し、サンプルの Pro*C プログラムをビルドして検証したら、makefile を変換するためのテンプレートとして、demo_proc.mk makefile (デモ プログラムと共にインストールされます) を使用することをお勧めします。

また、Informix については何も知りませんが、コード自体はおそらく Pro*C に変換する必要があります。これは、Informix には他のプリコンパイラまたはデータベース アクセス用の代替ライブラリ セットがあると想定しているためです。

それが役立つことを願っています。

于 2012-09-07T08:28:40.157 に答える