在Windows中使用Cygwin环境下的gcc编译器编译【电脑教程网】Informix ESQ/C程序

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文件  

你可能感兴趣的:(windows,unix,gcc,Informix,makefile,编译器)