我正在尝试安装gmp 2,如在ubuntu12.04LTS下的https://code.google.com/p/gmpy/wiki/InstallingGmpy2中所解释的。
因此,我需要编写GMP、MPFR和MPC。
为了编写GMP,根据上述说明,我需要:
$ cd ~/src/gmp-5.1.0
$ ./configure --prefix=/home/case/local
$ make
$ make check
$ make install
./configure***步骤运行良好,尽管我不得不在命令前面加上/bin/bash***。
当我调用***make***命令时,遇到了以下涉及libtool的错误:
我的意思是说,如果你想在一个文件中找到一个新的文件,那么你可以在一个新的文件中找到一个新的文件,这个文件就是你的文件。
../libtool:1581的文件名:../lib工具:保留参数+= --标签抄送:未找到
../libtool:1:eval:基本编译+= gcc:未找到
../libtool:1:编译器的参数:未找到
../libtool:1:如果您有任何问题,请使用以下命令:未找到
../libtool:1:编译器:未找到
../libtool:1:编译器:未找到
../libtool:1:评估:基本编译+= -D GMP范围内的GMP:未找到
../libtool:1:编译器:未找到
../libtool:1:评估:基本编译+= -DOPERATION_fib_表:未找到
../libtool:1:编译器:未找到
../libtool:1:编译器:基本编译+= -O2:未找到
../libtool:1:eval:base_compile+= -学究式的:未找到
../libtool:1:eval:base_compile+= -格式帧指针:未找到
../libtool:1:编译器:未找到
../libtool:1:编译器:未找到
../libtool:1:编译器:未找到
libtool:编译器:必须指定编译命令
libtool:编译器:请尝试使用“libtool --help --mode=compile”以获取更多信息。make[2]:***[fib_table.lo]错误1
创建[2]:正在离开目录“/home/nicolas/Dropbox/crypto/gcc-lib/gmp-5.1.3/mpn”
make[1]:***[全部递归]错误1
创建[1]:正在离开目录“/home/nicolas/Dropbox/crypto/gcc-lib/gmp-5.1.3”
make:***[全部]错误2
我怀疑以***/bin/sh***为前缀的libtool调用是错误的,但我不知道如何更改它:
- 在MakeFile中,我将SHELL=/bin/sh更改为SHELL=/bin/bash:无差别
- 当我“printenv SHELL”时,我得到/bin/bash
如何完成GMP的编制?
4条答案
按热度按时间eyh26e7m1#
正如您所说的,这是因为对
libtool
的调用以/bin/sh
为前缀,而您的/bin/sh
实现(我有根据的猜测:dash
)不实现+=
语法(这不是POSIX特性)。libtool
本身将/bin/bash
作为hashbang。如果您无法确定您的
SHELL
前缀来自何处,您可以通过更改所有出现的以下内容来“修复”libtool
本身:至
请注意,这是一个快速的黑客,您应该更好地解决底层问题,即用
/bin/sh
调用libtool
。(在尝试构建
apr-util
时,由于shellshock,我在将默认shell从bash
切换到dash
后遇到了同样的问题。)eqqqjvef2#
apr
在/usr/share/apr-1/libtool
下调用一个内部libtool,它与您通常使用的libtool不同。可能是为了避免环境问题和具有讽刺意味的编译器问题:
mv arp-1/libtool
到apr-1/libtool.bak
和ln -sv /usr/bin/libtool
到/usr/share/apr-1/libtool
将修复此问题,而不管您的环境或调用方法如何。类似地,检查
libtool
是从哪里调用的。很多源代码包是从内部二进制文件构建的,可能与您的系统不兼容。nkcskrwz3#
如错误日志所示:找不到gcc表示您没有安装gcc(gnu c编译器)。
运行
sudo apt-get install gcc && gcc --version
disbfnqx4#
确保安装了
libtool-bin
软件包。如果只有
libtool
,which libtool
命令将打印/mnt/c/MinGW/bin/libtool
。安装
libtool-bin
后,which libtool
命令将打印/usr/bin/libtool
。这在某种程度上为我解决了这个问题,希望这对某些人有帮助。