Chinaunix

标题: 程序编译出现 Undefined symbol: .libiconv_open [打印本页]

作者: rabbitte    时间: 2014-07-23 18:58
标题: 程序编译出现 Undefined symbol: .libiconv_open

程序中使用了iconv库的一些接口,编译的时候也-liconv库,但是编译的时候出现了:

1>ld : 0711-317 error : Undefined symbol: .libiconv_open
1>ld : 0711-317 error : Undefined symbol: .libiconv
1>ld : 0711-317 error : Undefined symbol: .libiconv_close
1>  ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information

查看lpp:
#lslpp -l |grep iconv
  bos.iconv.com              6.1.6.0  COMMITTED  Common Language to Language
  bos.iconv.ja_JP            6.1.4.0  COMMITTED  EBCDIC & ASCII Language
  bos.iconv.ucs.com          6.1.6.0  COMMITTED  Unicode Base Converters for
  bos.rte.iconv              6.1.6.0  COMMITTED  Language Converters
  bos.rte.iconv              6.1.6.0  COMMITTED  Language Converters

请问这个问题由于什么原因导致的呢?
作者: orian    时间: 2014-07-23 20:07
在path里没找到对应的lib ?
你先看看libiconv.o 或libiconv.a在什么地方
有说法加-L/usr/local/lib
作者: rabbitte    时间: 2014-07-24 10:33
回复 2# orian


find之后就是在/usr/lib之下,然后-L指定了该目录,就是提示这个错误。

作者: orian    时间: 2014-07-25 03:50
还要加-liconv去link library
作者: rabbitte    时间: 2014-07-25 15:54
回复 4# orian


    这个库也加进去了。

  

最后这个问题的解决办法编译的时候去掉-L指定的/usr/lib这个选项。很奇怪的原因。/usr/lib不就是aix的默认库文件目录吗。
作者: orian    时间: 2014-07-27 06:45
哦,那是重名了,在/usr/lib有库和export list的名字一样,但不包含那几个routine




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2