在Ubuntu上编译程序出现了undefined reference to `libiconv'
,结果一搜索,一大堆文章在告诉我,你没装libiconv,装一下,我说我装了,他说你没装,我说我装了,他说你没装。。。
我真的装了
折腾半天,终于找到靠谱点的文章,把问题解决了,然而靠谱的文章只给了一个方法,没有解释原因,于是我又方了。
类似的靠谱方法集合
mv /usr/local/include/iconv.h /usr/local/include/iconv.h.bak
rm /usr/local/include/iconv.h
直接看这里
一般出现这种报错,主要原因一个是没装libiconv,一个是编译器找错了。
没装libiconv就很简单,装一下,下载地址:http://www.gnu.org/software/libiconv/#downloading,安装方法也在里面,这里不写了,目前国内打开流畅。
找错了,根本原因是开发人员没有指定所需libiconv库的绝对路径,结果编译器自己找错了,那咱没办法改变开发人员,谁叫咱用人家软件呢。。。
如果你自己就是开发人员,那在引用libiconv库时指定你想要引入的libiconv库的绝对路径即可。
如果你不是,那么就把误导编译器的那个删掉。我本来想自己详细探究一下背后的原因(吹牛的),结果发现了一篇文章已经干过类似的事情了,干的还不错,干脆分享过来,这里放一下链接,可自行前往围观。
且听风吟 这篇比较详细