免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10568 | 回复: 9
打印 上一主题 下一主题

[开发环境] 解决libiconv cannot find -liconv [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-02-04 23:55 |只看该作者 |倒序浏览
要使用libiconv这个库,要在arm板上使用,所以使用arm-linux-gcc 进行编译
./configure --enable-shared --host=arm-linux   ;make;make install  这样就在/usr/local/lib 和include产生了头文件和库
但是我在编译我的程序的时候出现arm-none-linux-gnueabi/bin/ld: cannot find -liconv,arm-linux-gcc 用的3.4.1,我用 -I 和-L链接了libiconv的库和头文件,我觉得这样链接没有错 ,我在使用libxml2的时候也遇到cannot find -lixml和情况,用-I和-L连接上库就可以,原来我在最开始装的fedora中装过libiconv 那时候成功了,也没有记录过程,但就在前两天gnome崩溃了  ,靠我也崩溃了,那就重装吧,没想到装上了  编译不过去了,我连续搞了3天了,今天我就要吐了?求大侠们帮帮忙给解解惑,让我过去这道坎。环境:fedora21 libiconv1.14 arm-linux-gcc 用的3.4.1,x86_64
我同时又在centOS装上libiconv  编译程序  同样的问题,这是哥俩。

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
2 [报告]
发表于 2015-02-05 11:22 |只看该作者
本帖最后由 amarant 于 2015-02-05 11:22 编辑

你要的是arm的libiconv。所以你需要先下载它的代码,先编译出arm版本的该库。然后用-L参数指定库位置

论坛徽章:
0
3 [报告]
发表于 2015-02-05 23:33 |只看该作者
回复 2# amarant
是的。我是下载的libiconv1.14.tar.gz的源码 进行交叉编译的


   

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
4 [报告]
发表于 2015-02-08 17:47 |只看该作者
回复 3# q1e2e3q


    交叉编译注意指定--prefix到你的toolchain目录,你就不需要编译的时候指定-L了。

论坛徽章:
0
5 [报告]
发表于 2015-02-09 09:28 |只看该作者
本帖最后由 q1e2e3q 于 2015-02-09 09:29 编辑

回复 4# amarant
我是这样做的;
Centos7
arm-linux-gcc 3.4.1
libiconv-1.14.tar.gz
编译libiconv,cd  /libiconv-1.14/
./configure –enable-shared –host=arm-linux,生成Makefile

make
make install
库位置

头文件位置

make 错误




   

x1.png (193.68 KB, 下载次数: 72)

x1.png

x2.png (82.35 KB, 下载次数: 75)

x2.png

x3.png (90.13 KB, 下载次数: 71)

x3.png

x4.png (125.91 KB, 下载次数: 70)

x4.png

x5.png (76.67 KB, 下载次数: 73)

x5.png

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
6 [报告]
发表于 2015-02-09 10:54 |只看该作者
编译iconv的时候静态编译

论坛徽章:
0
7 [报告]
发表于 2015-02-09 14:41 |只看该作者
回复 6# T-Bagwell
好的我在试试



   

论坛徽章:
0
8 [报告]
发表于 2015-02-11 12:32 |只看该作者
回复 6# T-Bagwell

使用静态编译会出现错误
    ./configure --enable-shared --enable-static --host=arm-linux

论坛徽章:
0
9 [报告]
发表于 2015-02-11 15:18 |只看该作者
回复 6# T-Bagwell
刚才我把编译出现的错误解决了,到程序中重新make又出现了新问题,如图


   

论坛徽章:
0
10 [报告]
发表于 2015-02-11 15:51 |只看该作者
回复 6# T-Bagwell 找到问题原因了,我装的是64为的linux,需要把库装到lib64里面才行 linux系统在 /usr/lib/ 和 /usr/lib64/ 两个目录下,会分别存放不同位数版本的lib,
  可通过修改环境配置来指定所需的库位置:
  # ./configure --enable-lib64 --libdir=/usr/lib64
  解决库版本问题


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP