找出static.sqc
utilemb.h
utilemb.sqc三个文件拷贝到工作录,并修改
static.sqc中的嵌入式select sql语句中的表的模式让它符合你的数据库环境,其中
static.sqc 在v8以前是可以找到的,新版Ms没有了。
编写makefile如下:
DB2PATH = /home/$(DB2INSTANCE)/sqllib
# Use the g++ compiler
CC= gcc
CXX=g++
# The required compiler flags
EXTRA_CFLAGS=-g
DB2INCPATH= $(DB2PATH)/include
DB2LIBPATH= $(DB2PATH)/lib
# The required libraries
LIBS= -ldb2
CFLAGS= $(EXTRA_CFLAGS) -I$(DB2INCPATH)
LFLAGS= -L$(DB2LIBPATH) -Wl,-rpath,-g -L$(DB2LIBPATH)
CPPFLAGS=$(EXTRA_CFLAGS) -I$(DB2INCPATH)
# To connect to a remote SAMPLE database
DB=sample
ERASE=rm -f
#==============================================================
.SUFFIXES: .o .c .cpp .sqc .bnd
%.c %.bnd : %.sqc
db2 connect to $(DB)
db2 prep $< bindfile
db2 bind $*.bnd
db2 connect reset
db2 terminate
#==============================================================
# This program's object code files
PRG = static
OBJS = static.o utilemb.o
#==============================================================
all : $(PRG)
.PHONY: all
$(PRG) : $(OBJS)
$(CC) -o $@ $(LFLAGS) $(OBJS) $(LIBS)
#==============================================================
.PHONY : clean
clean :
$(ERASE) *.o *.map *~
cleanall : \
clean
$(ERASE) *.bnd
$(ERASE) $(PRG)
此makefile文件简单明了,充分利用了模式匹配规则和默认匹配规则,但缺点是每次把sqc编译成c语言文件时需要做一次数据库连接。