免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4623 | 回复: 2
打印 上一主题 下一主题

linux环境下DB2嵌入C++编程的makefile问题(急,在线等) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-24 11:00 |只看该作者 |倒序浏览
大家好,我对单个.sqC文件的makefile如下:

DB2    = db2
CC     = g++
CFLAGS = -O
                                                                                
IP1   = /home/db2inst1/sqllib/include
LP1   = /home/db2inst1/sqllib/lib
LIB1  = db2
                                                                                
DATABASE = roadnet2
                                                                                
EXE = split
                                                                                
SQC = split.sqC
C   = split.C
BND = split.bnd
OBJ = split.o
                                                                                
all : $(EXE)
                                                                                
$(EXE) : $(OBJ)
        $(CC) $(CFLAGS) -L$(LP1) $(OBJ) -o $@ -l$(LIB1); \
                                                                                
$(OBJ) : $(C)
        $(CC) -g -c $(CFLAGS) -I$(IP1) $(C)
                                                                                
$(C) $(BND) : $(SQC)
        $(DB2) connect to $(DATABASE) user db2inst1 using 111111; \
        $(DB2) prep $(SQC) target cplusplus bindfile using $(BND); \
        $(DB2) bind $(BND); \
        $(DB2) connect reset
clean :
        rm $(C) $(BND) $(OBJ) $(EXE)

对单个文件进行编译是对的,可是怎么修改了让它能够编译多个.sqC文件呢?我试过把.sqC和相应的.C文件添加在$(C)和$(BND)中,可是不行啊,大侠们能告诉我怎么修改妈?

论坛徽章:
0
2 [报告]
发表于 2009-05-26 14:57 |只看该作者
makefile文件:
CC= gcc

DBNAME                = shjddb
INCDIR                = $(HOME)/sqllib/include
BINDIR                = $(HOME)/sqllib/bin
BNDDIR                = $(HOME)/sqllib/bnd
LIBDIR                = $(HOME)/sqllib/lib

CFLAGS        =        -I$(INCDIR) -s
LFLAGS        =        -L$(LIBDIR) -ldb2

test =        test.o
all: test clear

test :        $(test)
        $(CC) -O $(LFLAGS) $(test) -o $@
       
.SUFFIXES:.SQC
.SQC.o:
        cp $*.SQC $*.sqc
        db2 connect to $(DBNAME);
        db2 prep $*.sqc BINDFILE USING $(BNDDIR)/$*.bnd;
        db2 bind $(BNDDIR)/$*.bnd datetime ISO;
        db2 grant execute on package $* to public;
        $(CC) -g -c -O $(CFLAGS) $*.c
        -rm -f $*.c $*.sqc
clear:
        -rm *.o

test.SQC文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlenv.h>
#include <sqlcodes.h>
#include <sqlda.h>
EXEC SQL INCLUDE sqlca;

int main()
{
        EXEC SQL BEGIN DECLARE SECTION;
                char acDbName[30];
                char acDbUser[30];
                char acDbPass[30];
                char acBrno[7];
        EXEC SQL END  DECLARE SECTION;
  char str[180], *zz, str1[180];
  int i;   

        strcpy( acDbName, "shjddb" );
        strcpy( acDbUser, "shjd" );
        strcpy( acDbPass, "shjd" );   
        EXEC SQL CONNECT TO :acDbName user :acDbUser using :acDbPass;
        if (sqlca.sqlcode)
        {
                printf("连接数据库出错!\n");
                goto EXIT;
        }
       
  memset( acBrno, 0x00, sizeof(acBrno));     
        EXEC SQL SELECT SITENO INTO :acBrno
                FROM TEMP_BATCH       
                WHERE BATCHID = '20090514150559031001';
  if( SQLCODE != 0 )
        {
                printf("运行SQL出错!\n");
                goto EXIT;
        }  
       
  printf("Brno=%s\n", acBrno);
EXIT:
        EXEC SQL DISCONNECT :acDbName ;
        printf("程序运行结束!\n");
        exit(0);
}

论坛徽章:
0
3 [报告]
发表于 2009-06-11 17:27 |只看该作者
看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP