PHP在编译时报错error unsupported size of off_t

分享于:2019-03-05 17:09:42

PHP在编译时,一些扩展需要调用系统的类库,例如gd2。我们安装好这些类库后,需要在编译PHP的时候,指定他们的路径(如: –with-gd=/usr/local/gd2/),当然默认路径除外。

但是在重新编译的时候,会出现一些这样的错误:

1
error: #error unsupported size of off_t

1
configure: error: off_t undefined; check your library configuration

通常出现这种原因是因为编译的时候找不到类库文件导致的,解决的方法就是要让编译器找到要使用的类库文件。首先我们要保证系统安装了libzip,如果没有,需要安装。

1
yum install libzip

然后去设置通常用到类库的路径:

1
2
3
4
5
6
7
8
vim /etc/ld.so.conf.d/local.conf // 创建local.conf
 
/usr/local/lib64                 // 添加输入
/usr/local/lib                   // 添加输入
/usr/lib                         // 添加输入
/usr/lib64                       // 添加输入
 
ldconfig -v                      // 保存并执行

添加好后,大部分情况都可以解决了。但还有少数情况还是报同样的错误,说明编译器还是没有找到需要使用的类库文件,这个时候需要确认清楚需要调用的类库文件是否在上面添加的那4个路径中。如果不在,需要将路径补进去。例如我举的gd2的例子,我将该库安装在了/usr/local/gd2/中,那么他的类库文件就在/usr/local/gd2/lib/中,需要把这个路径也添加进上面local.conf这个文件中。

这样再次编译的时候,就不会在报错了。

最后,如果之前编译安装过PHP,这次是在同一版本下再次编译安装,可以用下面这个命令查看之前编译PHP的参数。

1

$PHP$/bin/php -i | grep configure




来源:https://gunn.me/archives/344