【问题标题】:PHP 7.4.10 on CentOS error: unable to locate gmp.hCentOS 上的 PHP 7.4.10 错误:无法找到 gmp.h
【发布时间】:2020-09-23 14:58:40
【问题描述】:

我正在使用 CentOS 7 并从源代码构建 PHP 7.4.10 rpm。我们之前一直在使用 PHP 7.2,gmp 位于 /usr/lib64/,因此规范文件中的 ./configure 采用 --with-gmp=/usr/lib64。这没有问题,我还测试过它仍然适用于 PHP 7.3.22。然而,构建 PHP 7.4.10 时会遇到此错误:configure: error: Unable to locate gmp.h

$ locate gmp.h
/usr/include/gmp.h
$ locate gmp.so
/usr/lib64/libgmp.so
/usr/lib64/libgmp.so.10
/usr/lib64/libgmp.so.10.2.0
%build
cd %{_builddir}/php-%{version}
export CC=/usr/local/gcc/bin/gcc
export CXX=/usr/local/gcc/bin/g++
export CFLAGS="-O3 -m64 -isystem/usr/local/gcc/include -L/usr/local/gcc/lib64 -Wl,--rpath=/usr/local/gcc/lib64 "
export CXXFLAGS=$CFLAGS
./configure --with-gmp=/usr/lib64 --enable-bcmath --enable-ftp --with-curl --with-openssl --enable-mbstring
make -j8
$ rpm -qa | grep -i gmp
gmp-devel-6.0.0-15.el7.x86_64
gmp-6.0.0-15.el7.x86_64

我尝试在/usr/include/gmp.h/usr/lib64/gmp.h 之间放置符号链接,但没有成功。 我还尝试将 -isystem/usr/include-isystem/usr/include/gmp.h 添加到 CFLAGS、CPFLAGS 和 CXXFLAGS。

我特别困惑,因为 PHP 7.4 似乎发生了一些变化,但我找不到任何升级说明。

【问题讨论】:

  • 您的包含目录似乎是 system/usr/local/gcc/include 而不是 /usr/include

标签: php c gcc centos7


【解决方案1】:

--with-gmp=/usr/lib64 搜索/usr/lib64/include/usr/lib64/lib64 中的文件。您需要使用--with-gmp=/usr--with-gmp=shared

遇到此类问题时,参考分发构建脚本通常会很有帮助,例如PHP 7.4 RPM SPEC file for CentOS。在下方,您将看到对%{_prefix} 的引用,它代表/usr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2012-01-26
    • 2011-11-13
    • 2017-07-03
    相关资源
    最近更新 更多