gcc-4.7.2:ppl-0.11的先决条件无法找到gmp-4.3.2

时间:2012-11-28 06:35:15

标签: linux gcc

我正在尝试为gcc-4.7.2构建先决条件。

ppl-0.11gmp-4.3.2都是<gcc_src>/gcc-4.7.2/gcc/doc/HTML/prerequisites.html

中推荐的版本

我已经构建并安装了gmp-4.3.2(设置--enable-cxx

尝试配置ppl-0.11失败。

configure: error: Cannot find GMP version 4.1.3 or higher.
GMP is the GNU Multi-Precision library:
see http://www.swox.com/gmp/ for more information.
When compiling the GMP library, do not forget to enable the C++ interface:
add --enable-cxx to the configuration options.

这是我的配置行:

./configure \
    --prefix=$PREFIX \
    --with-gmp=$PREFIX \
    --with-gmp-prefix=$PREFIX \

如果我查看我指定with-gmp的目录,这里是已安装的gmp:

$ grep MP_VERSION $PREFIX/include/gmp*

    $PREFIX/include/gmp.h:#define __GNU_MP_VERSION 4
    $PREFIX/include/gmp.h:#define __GNU_MP_VERSION_MINOR 3
    $PREFIX/include/gmp.h:#define __GNU_MP_VERSION_PATCHLEVEL 2

$ l $PREFIX/include/gmp*

    $PREFIX/include/gmp.h
    $PREFIX/include/gmpxx.h

$ l /$PREFIX/lib/libgmp*

    $PREFIX/lib/libgmp.a
    $PREFIX/lib/libgmp.la
    $PREFIX/lib/libgmp.so -> libgmp.so.3.5.2
    $PREFIX/lib/libgmp.so.3 -> libgmp.so.3.5.2
    $PREFIX/lib/libgmp.so.3.5.2
    $PREFIX/lib/libgmpxx.a
    $PREFIX/lib/libgmpxx.la
    $PREFIX/lib/libgmpxx.so -> libgmpxx.so.4.1.2
    $PREFIX/lib/libgmpxx.so.4 -> libgmpxx.so.4.1.2
    $PREFIX/lib/libgmpxx.so.4.1.2

我错过了什么吗?

据我所知,GMP可用且必备版本

4 个答案:

答案 0 :(得分:1)

根据您正在运行的发行版,您是否尝试安装gmp-devel软件包(即在Fedora / RedHat等上安装ymp install gmp-devel)?

答案 1 :(得分:1)

PPL 默认情况下会尝试使用 GMP 的默认位置。如果您使用 crosstool-ng ,则必须执行跨本机加拿大交叉构建。如果您是手动执行此操作,请使用CXXFLAGS./configure-I<path-to-gmp-header>指定为 PPL的 -Wl,-L<path-to-gmp-libs>。这允许 PPL ./configure找到 GMP 的正确版本。

显然是 PPL 配置,

--prefix=$PREFIX \
--with-gmp=$PREFIX \
--with-gmp-prefix=$PREFIX \

还不够。在我意识到我不再构建交叉编译器,而是之前,我在./configure脚本中搞砸了并且正在攻击 crosstool-ng 当我使用我的发行版 gcc时,加拿大跨越,而另一个主编译器使用较低的< em> glibc 共享库。如果您希望编译器在更大类的计算机上运行,​​这将非常有用。 glibc 版本的构建编译器不太可能产生太大影响。

我仍然需要在 crosstool-ng 中修补120-ppl.sh

do_ppl_for_build() {
...    
    ppl_cxxflags="${CT_CFLAGS_FOR_BUILD}"
+   ppl_cxxflags+=" -I${CT_BUILDTOOLS_PREFIX_DIR}/include "
+   ppl_cxxflags+=" -Wl,-L${CT_BUILDTOOLS_PREFIX_DIR}/lib "
    if [ "${CT_PPL_NEEDS_FPERMISSIVE}" = "y" ]; then
        ppl_cxxflags+=" -fpermissive"
    fi

答案 2 :(得分:1)

所以我也面临同样的问题,我做的是:

1)进入gmp-4.3.2文件夹
2)使distclean
3)./configure --prefix = / home / sen / Documents / mingw / downloads / gmp_build --enable-cxx
4)制造&amp;&amp; make install
5)进入ppl-0.11文件夹
6)./configure --prefix = / home / sen / Documents / mingw / downloads / ppl_build --with-gmp-prefix = / home / sen / Documents / mingw / downloads / gmp_build --enable-cxx
7)制造&amp; make install

花了大约10-20分钟编译,事情很好。

谢谢,

答案 3 :(得分:0)

多年来,这个问题已经陷入困境。解决方案首先是下载最新版本的gmp。然后,像照片一样复制路径。不要忘记./configure--enable-cxx,这是非常重要的一点。 ./configure --enable-cxx。现在是时间安装,./configure -help表示--with-gmp=DIR search for libgmp/libgmpxx in DIR/include and DIR/lib。所以写./configure --with-gmp=<<dir of gmp as shown in first picture, you may have a different path>>

enter image description here

我分别写了./configure --with-gmp=/usr/local/includemakesudo make install然后它就像一个魅力!

enter image description here