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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-04-03 21:00:43

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文件
阅读(722) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~