我正在尝试在 SLES-11 docker 容器中编译 libffi 64 位。
configure & make 行非常简单:
./configure --prefix=/opt/<prog>/ --libdir=/opt/<prog>/lib
make
make install
现在 libtool 在它的荣耀中决定像这样安装 .so:
/opt/<prog>/lib/../lib64/libffi.so
摆脱 ../lib64 部分的魔术是什么?
发现问题。
Libtool 不是问题。
libffi 配置的神奇之处在于。它试图变得聪明并调用'gcc --print-multi-os-directory'并将其填充到toolexeclibdir中。
似乎疯狂通常是从配置脚本中修补出来的,例如这样的: https ://github.com/chef/omnibus-software/blob/master/config/patches/libffi/libffi-3.2.1-disable -multi-os-directory.patch
以下配置命令适用于我:
configure --prefix=$PREFIX --libdir=$PREFIX/lib --disable-multi-os-directory