在 64 位 Linux 上查找 32 位库

在 64 位 Linux 上查找 32 位库

我刚刚安装了 64 位版本的 Slackware,并且正在从其 tarball 设置我之前运行的一些软件(32 位)。

目前我正在尝试构建 lib torrent-0.12.7,它声称它需要libsigc++-2.0。我已经libsigc++-2.2.9编译并安装了,但似乎找不到它。

我注意到libsigc++安装在:

/usr/local/lib

这是那里唯一的东西。我还注意到printenv显示:

PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig

因此我认为这意味着它在目录中寻找 64 位包,而不是目录lib64中的 32 位包。lib

是什么正确的让它找到这个包的方法是什么?我是否需要使用libsigc++某种标志重新编译以将其安装在 64 位目录中?如果是,怎么做?还是我需要做其他事情?如果我需要做的只是将该路径添加到上述环境变量中,我该怎么做?(由于某种原因,这台机器上没有setenv。)

答案1

我最终发现我需要使用export来设置我的环境变量。因此,.zshrc我添加了:

PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig; export PKG_CONFIG_PATH

现在./configure找到了正确的库。

答案2

通常你会pkg-config使用主机前缀来调用:

$ uname -m
x86_64

$ i686-pc-linux-gnu-pkg-config sigc++-2.0 --libs
-lsigc-2.0

相关内容