steveneast 发表于 2007-09-20 15:02

informix esql 编译报 ERROR: library not found: -lsuds 错误 [已解决]

我是一个 informix 的新手,安装 informix 后试用 esql 编译 .ec 程序
我试着编译 /usr/informix/demo/esqlc/demo1.ec 程序报 ERROR: library not found: -lsuds 错误

我试着使用 esql -e demo1.ec 程序,程序不报错,成功编译demo1.c文件

直接
# cc demo1.c
"demo1.c", line 1: error: cannot find include file: <sqlhdr.h>
"demo1.ec", line 21: error: incomplete struct/union/enum sqlvar_struct: _sqobind
"demo1.ec", line 23: error: too many struct/union initializers
"demo1.ec", line 23: error: cannot recover from previous errors

出现上述错误,不知道该如何设置调整。

.profile 文件中已包含
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql


望各位给与帮助!

使用 esql -libs 检查是否安装了需要的库函数

-lixsql
-lixasf
-lixgen
-lixos
-lixgls
-lnsl_s
-lcrypt_i
/usr/lib/libgen.a
-lsocket
-lm
-lsuds
-lx
-lelf
-lprot
-lx
-ltinfo
-lm
/usr/informix/lib/esql/checkapi.o
-lixglx

发现已经含有 -lsuds ,可还是不能编译。
然后去三个库函数的地方 /usr/informix/lib /usr/informix/lib/esql /lib 下面去找是否有带 suds 的文件,发现没有
在另外一台可以编译机器上查询 发现在 /lib 目录下面有个 libsuds.a 的文件报错的机器下面的相同位置没有,于是拷贝复制
问题解决!

但是为什么我的lib下面没有这个文件我实在搞不明白,我除了informix是用已有系统安装的打包文件安装的以外,别的没有什么特殊的原因!
奇怪!

怪,怪,怪!

[ 本帖最后由 steveneast 于 2007-9-20 16:17 编辑 ]

steveneast 发表于 2007-09-20 17:44

上述解决方案有些问题

原 /lib 下面的文件都是开发系统连接过去的,我拷过去的有些问题
使用esql 编译的 demo1.ec 程序运行的时候报 SQLSTATE 07003 错误
然后重新安装了 Develpment 库,原来我只安装了 C++的库文件
重新编译运行成功!
页: [1]
查看完整版本: informix esql 编译报 ERROR: library not found: -lsuds 错误 [已解决]