red hat linux没有库文件libiconv.so,libiconv库链接问题一则(备忘)

与在Solaris系统上不同,Linux的libc库中包含了libiconv库中函数的定义,因此在Linux上使用libiconv库相关函数,编译时是不需要显式-liconv的。但最近我的一位同事在某redhat enterprise server 5.6机器上编译程序时却遇到了找不到iconv库函数符号的链接问题,到底是怎样一回事呢?这里分享一下问题查找过程。

一、现场重现

这里借用一下这位同事的测试程序以及那台机器,重现一下问题过程:

/test.c/include

int main(void)

{

int r;

char *sin, *sout;

size_t lenin, lenout;

char *src = "你好!";

char dst[256] = {0};

iconv_t c_pt;

sin = src;

lenin = strlen(src)+1;

sout = dst;

lenout = 256;

if ((c_pt = iconv_open("UTF-8", "GB2312")) == (iconv_t)(-1)){

printf("iconv_open error!. errno[%d].\n", errno);

return -1;

}

if ((r = iconv(c_pt, (char **)&sin, &lenin, &sout, &lenout)) != 0){

printf("iconv error!. errno[%d].\n", r);

return -1;

}

iconv_close(c_pt);

printf("SRC[%s], DST[%s].\n", src, dst);

return 0;

}

根据之前的经验,我们按如下命令编译该程序:$> gcc -g -o test test.c

/tmp/ccyQ5blC.o: In function `main':

/home/tonybai/tmp/test.c:28: undefined reference to `libiconv_open'

/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值