- 论坛徽章:
- 0
|
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文件 |
|