注册 登录
无忧答案网 返回首页

张老师的个人空间 https://www.ap5u.com/?112605 [收藏] [复制] [RSS] 专业远程教辅导

日志

debian centos 等linux系统编译报错 undefined reference to `libiconv'

已有 1011 次阅读2022-4-10 19:25 |个人分类:技术学习

linux系统在编译需要 libiconv的软件的时候,经常会遇到 undefined reference to `libiconv' 错误。下面简单谈谈自己遇到的这种情况处理过程。
因为自己是新手遇到这种问题了,第一反应百度吧。然后搜出来了一大堆如下的方案。
如何在 debian  Ubuntu 等linux系统安装 libiconv库

1.首先下载libiconv库到用户目录下(一般用非ROOT用户的用户目录在/ home /用户名)。
下载libiconv的命令:

也可以下载下来后拷贝到电脑后进行安装:下载地址:https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz

wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz

2.解压下载回来的libiconv,并进入到该目录。

tar zxvf libiconv-1.16.tar.gz
cd libiconv-1.16

3.配置libiconv

./configure –prefix=/usr/local

4. 编译安装

make
make install

5.创建一个文件链接到Libiconv库

ln -s /usr/local/lib/libiconv.so /usr/lib
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2


按照上面的走了一遍 ,也安装成功了用命令 也找到了安装的路径

whereis libiconv
libiconv: /usr/lib/libiconv.so /usr/local/lib/libiconv.la /usr/local/lib/libiconv.so	

重新编译原来的软件,发现还是报错 undefined reference to `libiconv'

得回头继续百度吧,折腾半天,终于找到靠谱点的文章,把问题解决了

解决方法:

一般出现这种报错,主要原因一个是没装libiconv,一个是编译器找错了。

没装libiconv就很简单,装一下,下载地址:http://www.gnu.org/software/libiconv/#downloading,安装方法也在里面,这里不写了,目前国内打开流畅。

找错了,根本原因是开发人员没有指定所需libiconv库的绝对路径,结果编译器自己找错了

如果能改编译的源文件,那在引用libiconv库时指定你想要引入的libiconv库的绝对路径即可。

如果不能修改源文件,那么就把误导编译器的那个删掉。

我的解决方案是,备份了以下,然后直接删掉

mv /usr/local/include/iconv.h /usr/local/include/iconv.h.bak
rm /usr/local/include/iconv.h 


参考资料

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

https://tonybai.com/2013/04/25/a-libiconv-linkage-problem/



路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-3-28 22:09

Powered by 无忧答案网 X3.5

Copyright © 2018-2020 Design: Ap5u.Com

返回顶部