apt安装iconv的开发文件时,包的名字是什么?

我在编译一个开源项目时, 有一个参数是:
-liconv

但是,我在源里面,找不到libiconv-dev这个包。
现在,代码编译不过去,哪位知道是为什么吗?

补充一点:
我用的是debian 7
源是网易的

阅读 9.5k
3 个回答

应答。iconv是在glibc里的。我查了一下。

● ldd /usr/bin/iconv
        linux-vdso.so.1 (0x00007fffaafd7000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f163eb69000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f163ef16000)

而glibc里边有iconv.h,并没有libiconv.so

● equery f glibc G iconv
/usr/bin/iconv
/usr/include/iconv.h
/usr/sbin/iconvconfig

的确有单独的libiconv。

* dev-libs/libiconv
     Available versions:  ~*1.13.1 1.14 ~1.14-r1 {+static-libs ABI_MIPS="n32 n64 o32" ABI_X86="32 64 x32"}
     Homepage:            http://www.gnu.org/software/libiconv/
     Description:         GNU charset conversion library for libc which doesn't implement it

我不用Debian,可能包名字不大一样。至少。得提供一下编译的是什么。

增补。我特地找了一下gentoo-zh overlay。它里边有个patch是这样的:

● dog /var/lib/layman/gentoo-zh/app-emulation/skyeye/files/skyeye-iconv.patch
From bd29f32f6946420d446a4250b171cd2da3f7d6ca Mon Sep 17 00:00:00 2001
From: Dennis Lan <dennis.yxun@gmail.com>
Date: Mon, 20 Aug 2012 18:25:29 +0800
Subject: [PATCH] iconv: remove hardcoded linking to libaray

sys-libs/glibc-2.15-r2 already including iconv functionality
and there is not libiconv.{so,a} anymore

Signed-off-by: Dennis Lan <dennis.yxun@gmail.com>
---
 android/objs/emulator_libui/Makefile.am |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/android/objs/emulator_libui/Makefile.am b/android/objs/emulator_libui/Makefile.am
index a454878..596d969 100644
--- a/android/objs/emulator_libui/Makefile.am
+++ b/android/objs/emulator_libui/Makefile.am
@@ -175,7 +175,7 @@ libemulator_libui_la_SOURCES = $(emulator_libui) $(main_dir)
 if WIN32
 libemulator_libui_la_LDFLAGS = -no-undefined -shared -module  -Xlinker --enable-auto-import -Xlinker -L$(top_srcdir)/common/.libs/ -Xlinker -lcommon -Xlinker -L$(top_srcdir)/android/objs/emulator_common/.libs/ -Xlinker -lemulator_common -Xlinker -L/MinGW/GnuWin32/bin -Xlinker -llibiconv2 -Xlinker -lgdi32 -Xlinker -lws2_32 -Xlinker -lkernel32 -Xlinker -lkernel32 -Xlinker -lole32 -Xlinker -lkernel32 -Xlinker -lgdi32 -Xlinker -luuid -Xlinker -luser32 -Xlinker -lshell32 -Xlinker --export-all-symbol
 else
-libemulator_libui_la_LDFLAGS = -module -L$(top_srcdir)/common -lcommon -L$(top_srcdir)/android/objs/emulator_common/ -lemulator_common  -L/usr/local/lib -liconv
+libemulator_libui_la_LDFLAGS = -module -L$(top_srcdir)/common -lcommon -L$(top_srcdir)/android/objs/emulator_common/ -lemulator_common  -L/usr/local/lib
 endif


-- 
1.7.9.rc2

可以看见里边干掉了 -liconv(感觉之前我一直在废话啊)
简而言之:gentoo-zh 里有个/var/lib/layman/gentoo-zh/app-emulation/skyeye,去参考一下会比较好
当然更重要的是我在执行ebuild的时候看见那么一句话:

 * The CODE QULITY of skyeye is _TOTALLY_ _SHIT_ , don't report any bug to the maintainer, please flood the upstream.

下载源代码,手动编译安装,搞定。

aptitude search iconv你会看到的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏