解决一个国际化标准库的问题

W3A系统缺乏亮点,突发奇想想到一个新的东西,别人没做过的功能,准备尝试下。

居然发现该功能缺乏一些QT库,瞬间茫然了,开始了这个解决之旅。

这个是报的错误:

Unable to load library icui18n "Cannot load library icui18n: (libicui18n.so.48: 无法打开共享对象文件: 没有那个文件或目录)" 

对此很是无奈,所以我去翻了/usr/lib/的库,找下看看有没有,结果还真没有。

root@securityserver:~# ls -lh /usr/lib/libicu*
ls: 初始化月份字符串出错
ls: 无法访问/usr/lib/libicu*: 没有那个文件或目录

由于不清楚该库的具体名称,所以GG之,后来GG被墙了。所以被迫百度之。。结果百度的答案让人无比蛋腾。

抽根烟等了下,终于打开GG,搜索之,发现该库是一个国际化标准库,要使用QT的话,就需要使用到它。

目前有两种解决方案:1.在软件上禁止/屏蔽这个库 2.想办法安装这个库,让它能跑起来。

前者可能会导致软件不问题,甚至不能执行等问题,我就不尝试了,我选后者。

最后成功解决该问题,需要安装这个国际化标准库,一开始不知道它名称,GG之,找到的。

root@securityserver:~# sudo apt-get install libicu48
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列【新】软件包将被安装:
  libicu48
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 140 个软件包未被升级。
需要下载 8,103 kB 的软件包。
解压缩后会消耗掉 22.2 MB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu/ precise/main libicu48 amd64 4.8.1.1-3 [8,103 kB]
下载 8,103 kB,耗时 7秒 (1,114 kB/s)                                                        
Selecting previously unselected package libicu48.
(正在读取数据库 ... 系统当前共安装有 59122 个文件和目录。)
正在解压缩 libicu48 (从 .../libicu48_4.8.1.1-3_amd64.deb) ...
正在设置 libicu48 (4.8.1.1-3) ...
正在处理用于 libc-bin 的触发器...

安装成功后的效果:

root@securityserver:~# ls -lh /usr/lib/libicu*
ls: 初始化月份字符串出错
lrwxrwxrwx 1 root root   20  1�� 26  2012 /usr/lib/libicudata.so.48 -> libicudata.so.48.1.1
-rw-r--r-- 1 root root  18M  1�� 26  2012 /usr/lib/libicudata.so.48.1.1
lrwxrwxrwx 1 root root   20  1�� 26  2012 /usr/lib/libicui18n.so.48 -> libicui18n.so.48.1.1
-rw-r--r-- 1 root root 1.8M  1�� 26  2012 /usr/lib/libicui18n.so.48.1.1
lrwxrwxrwx 1 root root   18  1�� 26  2012 /usr/lib/libicuio.so.48 -> libicuio.so.48.1.1
-rw-r--r-- 1 root root  51K  1�� 26  2012 /usr/lib/libicuio.so.48.1.1
lrwxrwxrwx 1 root root   18  1�� 26  2012 /usr/lib/libicule.so.48 -> libicule.so.48.1.1
-rw-r--r-- 1 root root 211K  1�� 26  2012 /usr/lib/libicule.so.48.1.1
lrwxrwxrwx 1 root root   18  1�� 26  2012 /usr/lib/libiculx.so.48 -> libiculx.so.48.1.1
-rw-r--r-- 1 root root  47K  1�� 26  2012 /usr/lib/libiculx.so.48.1.1
lrwxrwxrwx 1 root root   20  1�� 26  2012 /usr/lib/libicutest.so.48 -> libicutest.so.48.1.1
-rw-r--r-- 1 root root  61K  1�� 26  2012 /usr/lib/libicutest.so.48.1.1
lrwxrwxrwx 1 root root   18  1�� 26  2012 /usr/lib/libicutu.so.48 -> libicutu.so.48.1.1
-rw-r--r-- 1 root root 141K  1�� 26  2012 /usr/lib/libicutu.so.48.1.1
lrwxrwxrwx 1 root root   18  1�� 26  2012 /usr/lib/libicuuc.so.48 -> libicuuc.so.48.1.1
-rw-r--r-- 1 root root 1.4M  1�� 26  2012 /usr/lib/libicuuc.so.48.1.1

实验环境是自己搭建的ubuntu server.乱码那是必须有的。因为系统编码问题,我用SSH登录。

posted @ 2013-06-21 10:09  墨迹哥's  阅读(4593)  评论(0编辑  收藏  举报