问题描述
我从预编译二进制文件的 SCIPOptSuite-7.0.2-Darwin-Ipopt-gcc10.sh 安装程序中安装了 SCIP Optimization Suite。 我还通过运行安装了 gcc 和 tbb:
brew install gcc
brew install tbb
错误信息:
$ SCIPOptSuite-7.0.2-Darwin/bin/scip
dyld: Library not loaded: /usr/local/lib/7/i386/libquadmath.0.dylib
Referenced from: /Users/it/VirtualBox/10运筹学/14SCIP/01install/SCIPOptSuite-7.0.2-Darwin/bin/scip
Reason: no suitable image found. Did find:
/usr/local/lib/7/i386/libquadmath.0.dylib: mach-o,but wrong architecture
/usr/local/lib/7/i386/libquadmath.0.dylib: stat() Failed with errno=1
/usr/local/lib/7/i386/libquadmath.0.dylib: mach-o,but wrong architecture
[1] 93720 abort SCIPOptSuite-7.0.2-Darwin/bin/scip
还有其他安装了 x86_64 架构的 libquadmath.0.dylib:
$ sudo find / -name libquadmath.0.dylib
Password:
/usr/local/lib/7/i386/libquadmath.0.dylib
/usr/local/lib/7/libquadmath.0.dylib
/usr/local/opt/lib/gcc/7/i386/libquadmath.0.dylib
/usr/local/opt/lib/gcc/7/libquadmath.0.dylib
/usr/local/Cellar/4.6.4/lib/gcc/x86_64-apple-darwin12.5.0/4.6.4/i386/libquadmath.0.dylib
/usr/local/Cellar/4.6.4/lib/gcc/x86_64-apple-darwin12.5.0/4.6.4/libquadmath.0.dylib
/usr/local/Cellar/gcc/10.2.0_2/lib/gcc/10/libquadmath.0.dylib
/usr/local/Cellar/gcc@4.6/4.6.4/lib/gcc/x86_64-apple-darwin12.5.0/4.6.4/i386/libquadmath.0.dylib
/usr/local/Cellar/gcc@4.6/4.6.4/lib/gcc/x86_64-apple-darwin12.5.0/4.6.4/libquadmath.0.dylib
/Users/it/miniconda3/lib/python3.6/site-packages/numpy/.dylibs/libquadmath.0.dylib
/Users/it/miniconda3/lib/python3.6/site-packages/scipy/.dylibs/libquadmath.0.dylib
/Users/it/miniconda3/envs/py2/lib/python2.7/site-packages/scipy/.dylibs/libquadmath.0.dylib
$ lipo /usr/local/lib/7/libquadmath.0.dylib -archs
x86_64
我想知道为什么 scip 没有找到这些具有正确架构的 dylib? 非常感谢。
解决方法
首先确保您安装了正确版本的 gcc,您下载的安装程序要求版本 10。
其次,尝试先安装所有先决条件,然后再重新运行安装程序脚本。
如果这没有帮助,请检查 otool -L SCIPOptSuite-7.0.2-Darwin/bin/scip
和 echo $DYLD_LIBRARY_PATH
的输出以查看相关库是否已加载。
最后,您可以尝试通过将库路径调整为正确的路径来修补二进制文件:
install_name_tool -change /usr/local/lib/7/i386/libquadmath.0.dylib /usr/local/Cellar/gcc/10.2.0_2/lib/gcc/10/libquadmath.0.dylib SCIPOptSuite-7.0.2-Darwin/bin/scip