Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103704161
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-24 22:15:44

  出处:
Informix使用ESQL/C需要C编译器,本文中给出的解决方案描述使用GCC(一个自由的开放源代码的 C 编译器)+ CSDK(esql)完成ESQL/C功能 
1. 环境说明
OS: Windows XP
Informix: IDS V10.00.TC1
CSDK: IBM Informix  Client-SDK 2.81

2. GNU C 编译器(GCC)的安装
"安装 GCC 最快捷的方式是在您的机器上安装完整的 Cygwin 环境。Cygwin 是 Windows 上类似于 Linux 的环境。它包括一个提供 UNIX 功能

性基本子集的 DLL 以及在这之上的一组工具。"

安装过程可以参考
"在 Windows 中用 GCC 编译 DB2 UDB 存储过程"
http://www-900.ibm.com/developerWorks/cn/dmdd/library/techarticles/0306haungs/0306haungs.shtml

建议在安装的过程中还选择make,gdb,需要的话还可以安装gcc c++, gcc java的编译器。

3、使用esql和gcc进行编译
进入cygwin环境,配置$INFORMIXDIR, $PATH, $INFORMIXSERVER环境变量

最简单的编译方法:
(1)首先使用esql将ec预编译为.c
esql -e demo.ec

(2)再使用gcc将c编译为exe
gcc -IC:\Program\ Files\Informix\Client-SDK\incl\esql demo.c C:\Program\ Files\Informix\Client-SDK\lib\isqlt09a.lib

gcc中-I指明了编译需要的Informix头文件,编译时需要连接isqlt09a.lib库
原本想在gcc -I中使用$INFORMIXDIR环境变量,比如:gcc -I$INFORMIXDIR\incl\esql。但发现如果环境变量包含空格的路径,会有问题,
不知道有什么解决方法。

注意:在cygwin中'\'字符,空格字符前面都需要加一个'\'

3、使用make
Cygwin的make好像和UNIX上的make也有点不同,下面是一个Cygwin下测试过的makefile例子

CC = gcc
ECC = esql
CFLAGS = -Wall -O -g

ESQL_LIBS = C:\Program\ Files\Informix\Client-SDK\lib\isqlt09a.lib
ESQL_INCL = -IC:\Program\ Files\Informix\Client-SDK\incl\esql

.SUFFIXES : .ec

OBJS = demo.o

demo.exe: $(OBJS)
$(CC) $(CFLAGS) -o $@ $(OBJS) $(ESQL_INCL) $(ESQL_LIBS)

.ec.o:
$(ECC) -c $(CFLAGS) $<
@rm $*.c

还可以参考Client-SDK\demo\esqldemo中的源代码和makefile文件
阅读(1315) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~