【发布时间】: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