0

我正在尝试为gcc-4.7.2.

ppl-0.11和都是gmp-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

4 回答 4

1

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

1) 进入 gmp-4.3.2 文件夹
2) make distclean
3) ./configure --prefix=/home/sen/Documents/mingw/downloads/gmp_build --enable-cxx
4) make && 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)制作和制作安装

花了大约 10-20 分钟来编译,一切都很好。

谢谢,

于 2013-09-29T14:44:56.447 回答
1

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

显然是一个PPL配置,

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

是不足够的。在我意识到我不再构建交叉编译器,而是在我使用我的发行版时构建了一个加拿大交叉,而是另一个具有较低glibc共享库的主机编译器之前,我仔细研究了./configure脚本并破解了crosstool-ng . 如果您希望编译器在更大类的机器上运行,这很有用。构建编译器的glibc版本不太可能产生太大影响。 gcc

我仍然需要修补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
于 2013-05-09T15:44:32.480 回答
1

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

于 2012-11-28T06:38:19.547 回答
0

多年后,这个问题已经解决了。解决方法是首先下载最新版本的gmp。然后,像图片一样复制路径。不要忘记./configurewith --enable-cxx,这是非常重要的一点。./configure --enable-cxx. 现在是时候进行 ppl 安装了,./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>>

在此处输入图像描述

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

在此处输入图像描述

于 2017-10-29T12:22:57.753 回答