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

 maggieting0334_990 发布于 2022-11-05 12:12

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

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

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

3 个回答
  • aptitude search iconv你会看到的

    2022-11-12 01:45 回答
  • 下载源代码,手动编译安装,搞定。

    2022-11-12 01:45 回答
  • 应答。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.
    
    2022-11-12 01:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有