免费注册 查看新帖 |

Chinaunix

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

在Windows中使用Cygwin环境下的gcc编译器编译Informix ESQ/C程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-28 20:32 |只看该作者 |倒序浏览
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文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP