在QtCreator中使用libtorrent库的时候,

项目配置中 libs项配置如下:

LIBS += -liconv -ltorrent-rasterbar -lboost_system -lboost_filesystem

编译的时候出现如下错误:

/usr/local/lib/libtorrent-rasterbar.so:-1: error: undefined reference to `libiconv_open'

/usr/local/lib/libtorrent-rasterbar.so:-1: error: undefined reference to `libiconv'

:-1: error: collect2: error: ld returned 1 exit status

最初是以为libiconv没有装

查看一下

$ ls /usr/local/include/iconv* /usr/local/lib/libiconv* 

结果如下:

/usr/local/include/iconv.h  /usr/local/lib/libiconv.so    /usr/local/lib/libiconv.so.2.5.1
/usr/local/lib/libiconv.la  /usr/local/lib/libiconv.so.2

libiconv已经安装了

那就看看是不是没有链接到/use/local/lib中的库吧

查看 /etc/ld.so.config

发现 /usr/local/lib已经写入

 

也不是ld.so.config的问题,接下来尝试重新编译安装 libtorrent 和 libconv,问题还是没解决。

 

google一下 , 找的许多文章都是关于php的,而且解决方法不奏效,

然后发现了这篇帖子 :

http://www.cnblogs.com/lovemdx/archive/2013/06/09/3128371.html

该贴的解决方案是讲自己安装的libiconv卸载,使用libc提供的libiconv,依然无法解决我这个问题,

但是贴中讲的先后顺序的问题给了我点启发,于是尝试着调整一下 LIBS 中的库链接选项的顺序 ,

试着把 -liconv 移到最后

LIBS += -ltorrent-rasterbar -lboost_system -lboost_filesyste -liconv

问题解决

posted on 2014-03-11 18:57  wowk  阅读(1018)  评论(0编辑  收藏  举报