java – 在64位Linux安装上缺少32位库

我试图弄清楚为什么Eclipse抱怨无法找到一个库.我设法重现/减少java问题:

$ldd /home/jhendrix/.swt/lib/linux/x86/libswt-pi-gtk-3833.so
        linux-gate.so.1 =>  (0xf76fa000)
        libgtk-x11-2.0.so.0 => not found
        libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xf7674000)
        libXtst.so.6 => not found
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74c9000)
        libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf73cd000)
        /lib/ld-linux.so.2 (0xf76fb000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf738d000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7372000)
        librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7368000)

事实上,java抱怨无法找到libgtk-x11-2.0.so.0.但是当我检查ldconfig时,库就在那里:

$sudo ldconfig -v 2>&1 | grep -E '(libgtk-x11-2.0.so.0|libXtst.so.6)'
        libXtst.so.6 -> libXtst.so.6.1.0
        libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.2400.13

我怀疑它与运行64位系统有关,运行32位自定义Eclipse构建(Texas Instruments Code Composer 5):

$locate libgtk-x11-2.0.so.0 libXtst.so.6
/usr/lib/x86_64-linux-gnu/libXtst.so.6
/usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.13

我认为问题是:如何在64位Ubuntu 12.10上安装该库的32位版本?次要的:这可能会解决问题吗?

解决方法:

64位Ubuntu的现代版本默认启用dpkg多拱.您可以通过在程序包名称的末尾添加:i386来安装32位软件包.您可以在Ubuntu here中找到有关多拱的更多信息.

上一篇:DNS解析在php chroot中


下一篇:linux – 限制程序可以使用的系统库