【问题标题】:libiconv solaris-sparc/opteron 64 bitslibiconv solaris-sparc/opteron 64 位
【发布时间】:2011-05-11 02:03:09
【问题描述】:

我有 64 位的 solaris - sparc 和 opteron 系统。在 /usr/local/lib 下,我可以看到两个系统的 libiconv.so。 libiconv.so 上的文件命令给出以下输出:-

ELF 32-bit LSB dynamic lib 80386 Version 1, dynamically linked, not stripped, no debugging information available

如何在 sparc 和 opteron 系统上构建 64 位 libiconv 而不干扰现有的 32 位?原因是,我不知道现有版本的 libiconv。

【问题讨论】:

    标签: gcc 64-bit solaris iconv sparc


    【解决方案1】:

    此 libiconv.so 不属于非标准 /usr/local/lib 中的操作系统的一部分。如果您想自己构建或从其他地方安装此库的 64 位版本,您可以将其安装在 /usr/local/lib/amd64 或 /usr/local/lib/64 中。

    然而,这可能一开始就没有用,因为 Solaris 已经在其标准 C 库中包含了 iconv 库函数,所以 Gnu libiconv 在这里基本上是多余的和不必要的。

    【讨论】:

    • @jilliagre..感谢您的帮助。我必须在 makefile 中使用 -liconv 才能链接到 libiconv。我在 .cpp 文件中有 #include 。如果 iconv 是标准 C lib 的一部分,我应该在我的 makefile 中使用什么来链接到 32 位和 64 位 iconv?
    • @jilliagre..感谢您的帮助。我必须在 makefile 中使用 -liconv 才能链接到 libiconv。我在 .cpp 文件中有 #include 。如果 iconv 是标准 C lib 的一部分,我应该在我的 makefile 中使用什么来链接到 32 位和 64 位 iconv?我需要使用 -liconv 来消除“未定义符号”错误。当我使用 -liconv 时,它会解析为 32 位的 /usr/local/lib/libiconv.so。
    • 您永远不会同时链接到 32 位和 64 位库,它是一个还是另一个取决于您正在构建的内容。你观察到的未定义符号是什么?
    • @jlliagre..对不起,我的意思是我有 2 个单独的 32/64 位生成文件。如果我不使用 -liconv,我会得到“未定义的符号 libiconv_open,libiconv_close”。我在我的 .cpp 源中调用 iconv_open() 以获得 iconv_t 转换器,该转换器用于 iconv() 调用。再次感谢您的帮助。
    • 为什么 iconv_open 转换为 libiconv_open ?在您的代码或您包含的代码中的某处可能存在虚假定义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多