由于libgmp.so.3

时间:2016-05-02 10:33:28

标签: c++ linux gcc

我正在尝试在 linux 的local-build中安装 gcc-4.9.0 以及 gmp-4.3.2 mpfr-3.1.4 mpc-1.0.3 (我正在关注this教程)。

但是当我在gcc构建目录中运行make install时,我收到此错误:

test -z "/home/k.masson/gcc-4.9.0/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0" || /usr/bin/mkdir -p "/home/k.masson/gcc-4.9.0/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0"
Installing dummy lib libgcj_bc.so.1.0.0
/home/k.masson/build/gcc-4.9.0/host-x86_64-unknown-linux-gnu/gcc/cc1: 

主要是:

error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory

似乎 libgmp.so.3没有正确安装但它是('make install'did not failed for gmp)并且我多次检查链接是否正确但没有做,我不知道为什么make文件找不到它。

在运行make install之前,我按以下顺序运行这些命令:

LD_LIBRARY_PATH=/home/k.masson/gmp-4.3.2/lib:/home/k.masson/mpfr-2.4.2/lib:/home/k.masson/mpc-0.8.1/lib ./configure --prefix=/home/k.masson/gcc-4.9.0 --with-gmp=/home/k.masson/gmp-4.3.2 --with-mpfr=/home/k.masson/mpfr-2.4.2 --with-mpc=/home/k.masson/mpc-0.8.1 --disable-multilib

这个(我不知道为什么,但这是在教程中):

LD_LIBRARY_PATH=/home/k.masson/gmp-4.3.2/lib:/home/k.masson/mpfr-2.4.2/lib:/home/k.masson/mpc-0.8.1/lib nice -n 19 time make -j8

libgmp.so.3 位于 /home/k.masson/gmp-4.3.2/lib 以及 libgmp.so.3.5中。 2 。我甚至尝试使用ln -s libgmp.so.3.5.2 libgmp.so.3创建自己的链接,但它无法解决问题。

要在local-build中安装 gmp ,我使用了以下命令:

./configure --prefix=/home/k.masson/gmp-4.3.2 --enable-cxx
nice -n 19 time make -j8
make install
make check
echo $?  # Returns 2

一次测试失败

====================================
1 of 58 tests failed
Please report to gmp-bugs@gmplib.org
====================================
make[4]: *** [check-TESTS] Error 1
make[4]: Leaving directory `/home/k.masson/build/gmp-4.3.2/tests/mpz'
make[3]: *** [check-am] Error 2
make[3]: Leaving directory `/home/k.masson/build/gmp-4.3.2/tests/mpz'
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory `/home/k.masson/build/gmp-4.3.2/tests'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/home/k.masson/build/gmp-4.3.2'
make: *** [check] Error 2

另外,当我运行测试时,我得到了以上几行:

/bin/sh: line 4: 20956 Segmentation fault      (core dumped) ${dir}$tst

所以我尝试安装gmp-6.1.0以避免这个测试问题并且它可以工作,所有测试都没问题但是现在,这是一个gcc问题,我不能再运行make install因为make文件不存在..我应该保留新的gmp吗?并改变我的gcc?还是一点都不?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

简短的方法

要在安装 gmp 时修复测试问题,我只选择较新版本进行安装,这看起来是一个兼容性问题。所以我选择了 gmp-6.1.0 ,安装和测试流程都成功了。

但是这在安装 gcc-4.9.0 时带来了新问题,import UIKit class SampleViewController: UIViewController, HideableHairlineViewController { @IBOutlet private weak var toolbar: UIToolbar! @IBOutlet private weak var segmentedControl: UISegmentedControl! override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) hideHairline() } override func viewDidDisappear(animated: Bool) { super.viewDidDisappear(animated) showHairline() } } // MARK: UIToolbarDelegate extension SampleViewController: UIToolbarDelegate { func positionForBar(bar: UIBarPositioning) -> UIBarPosition { return .TopAttached } } 无法使用安装过程生成make文件。所以我必须得到一个更新的版本,我选择 gcc-4.9.3 而不是 gcc-4.9.0 ,一切都很完美。

干净的方式

由于@piyush让我注意到,所以根本不建议使用简短的方法。请参阅 Installing GCC

如果您想进行本地构建,最好是下载您想要的gcc版本here,在安装之前,请在gcc源代码中运行public class UsageExampleAdapter extends AppCompatActivity { public static String[] eatFoodyImages = { "http://i.imgur.com/rFLNqWI.jpg", "http://i.imgur.com/C9pBVt7.jpg", "http://i.imgur.com/rT5vXE1.jpg", "http://i.imgur.com/aIy5R2k.jpg", "http://i.imgur.com/MoJs9pT.jpg", "http://i.imgur.com/S963yEM.jpg", "http://i.imgur.com/rLR2cyc.jpg", "http://i.imgur.com/SEPdUIx.jpg", "http://i.imgur.com/aC9OjaM.jpg", "http://i.imgur.com/76Jfv9b.jpg", "http://i.imgur.com/fUX7EIB.jpg", "http://i.imgur.com/syELajx.jpg", "http://i.imgur.com/COzBnru.jpg", "http://i.imgur.com/Z3QjilA.jpg", }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_usage_example_adapter); listView.setAdapter(new ImageListAdapter(UsageExampleAdapter.this, eatFoodyImages)); } } 脚本。

如果没有,你可以使用你的包管理器,这要好得多。