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 |
|
来源:https://gunn.me/archives/344