在ubuntu上构建php5.3.8,得到错误:configure:error:无法找到gmp.h

ase*_*106 15 php ubuntu build

我正在使用ubuntu 13.10 x64,我正在尝试构建php 5.3.8,我下载了源代码并运行configure:

./configure --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data 
--with-tidy --with-config-file-path=/usr/local/php/conf 
--with-config-file-scan-dir=/usr/local/php/conf.d --enable-debug --with-openssl 
--with-kerberos --with-zlib --enable-calendar --with-curl --with-curlwrappers 
--with-enchant --enable-exif --enable-ftp --with-gd --with-jpeg-dir=/usr 
--with-png-dir=/usr --with-vpx-dir=/usr --with-freetype-dir=/usr --with-t1lib 
--enable-exif --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext 
--with-gmp --with-mhash --enable-intl --enable-mbstring --with-mcrypt --with-mysql 
--with-mysqli --enable-pcntl --with-pdo-mysql --with-pdo-pgsql 
--with-pgsql --with-pspell --with-libedit --with-readline --enable-shmop 
--with-snmp --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvshm 
--with-xsl --enable-zip --with-pear --enable-zend-signals --enable-maintainer-zts
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误: configure: error: Unable to locate gmp.h

我已安装libgmp-devlibgmp3-dev使用sudo apt-get install libgmp-dev libgmp3-dev但仍无法成功运行配置,如何解决此问题?


如果我跑,locate gmp.h我可以在这里看到它:

/usr/include/linux/igmp.h
/usr/include/netinet/igmp.h
/usr/include/x86_64-linux-gnu/gmp.h
/usr/src/linux-headers-3.11.0-12/include/linux/igmp.h
/usr/src/linux-headers-3.11.0-12/include/uapi/linux/igmp.h
/usr/src/linux-headers-3.11.0-12-generic/include/linux/igmp.h
/usr/src/linux-headers-3.11.0-13/include/linux/igmp.h
/usr/src/linux-headers-3.11.0-13/include/uapi/linux/igmp.h
/usr/src/linux-headers-3.11.0-13-generic/include/linux/igmp.h
Run Code Online (Sandbox Code Playgroud)

谢谢!

ame*_*iel 35

你在系统的任何地方都有gmp.h吗?如果它安装在非标准位置(或者自php 5.3.8发布以来标准位置已经更改),GCC可能会在错误的路径中查找它.

我的建议是找到gmp.h,如果它不在usr/include/gmp.h,请尝试使用符号链接.

回应你的评论(因为评论语法高度有限).

尝试对它进行符号化

ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h 
Run Code Online (Sandbox Code Playgroud)

如果失败,看看你是否可以编译包括参数

--with-gmp=/usr/include/x86_64-linux-gnu
Run Code Online (Sandbox Code Playgroud)

看看gcc文档.它有一个关于gmp路径的小部分.

http://gcc.gnu.org/install/configure.html

  • 尝试symlinking它**ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h**,如果失败,看看你是否可以编译包括参数** - with-gmp =/usr/include/x86_64-linux-gnu** (2认同)
  • 符号链接完成了这个技巧,* - with-gmp*选项对我不起作用 (2认同)
  • 如果文件/usr/include/x86_64-linux-gnu/gmp.h不存在,请尝试运行"apt-get install libgmp-dev" (2认同)

Mar*_*ger 6

这是一个错误。我报告了它-https://bugs.php.net/bug.php?id=69993-并提供了一个补丁来修复它。